如何在Neo4j中解析索引查询?

时间:2013-04-04 15:09:57

标签: parsing lucene neo4j

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

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

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

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

因此,索引查询返回null。

我做错了吗?是否有更好的方法来逃避这些角色?

编辑:

我也尝试过使用Lucene的QueryParser.escape(query)方法而没有运气。

1 个答案:

答案 0 :(得分:2)

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

id:"my_id_with*123y47123&"

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