0

我多次查询 neo4j 的自动索引,试图通过属性ID检索节点。它在大多数情况下运行良好,但如果我的查询包含lucene 特殊字符(+ - && || ! ( ) { } [ ] ^ " ~ * ? : ) 我会得到 ParseException。

我尝试使用以下代码解析查询字符串(如此建议):

String escapeChars ="[\\\\+\\-\\!\\(\\)\\:\\^\\]\\{\\}\\~\\*\\?]";

String escaped = userInput.replaceAll(escapeChars, "\\\\$0");

因此,索引查询返回 null。

难道我做错了什么?有没有更好的方法来逃避这些角色?

编辑:

我也尝试使用 Lucene 的QueryParser.escape(query)方法,但没有成功。

4

1 回答 1

2

如果可以的话,可能更容易把它放在引号中(\\无论如何,双引号需要在它们前面,在 Cypher 中)。

id:"my_id_with*123y47123&"

http://console.neo4j.org/r/bpxvzv

于 2013-04-04T21:28:40.277 回答