我多次查询 neo4j 的自动索引,试图通过属性ID检索节点。它在大多数情况下运行良好,但如果我的查询包含lucene 特殊字符(+ - && || ! ( ) { } [ ] ^ " ~ * ? : ) 我会得到 ParseException。
我尝试使用以下代码解析查询字符串(如此处建议):
String escapeChars ="[\\\\+\\-\\!\\(\\)\\:\\^\\]\\{\\}\\~\\*\\?]";
String escaped = userInput.replaceAll(escapeChars, "\\\\$0");
因此,索引查询返回 null。
难道我做错了什么?有没有更好的方法来逃避这些角色?
编辑:
我也尝试使用 Lucene 的QueryParser.escape(query)
方法,但没有成功。