Lucene支持转义作为查询语法一部分的特殊字符.当前列表中的特殊字符是
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \
Run Code Online (Sandbox Code Playgroud)
要逃避这些角色,请在角色前使用\.例如,搜索(1 + 1):2使用查询:
\(1\+1\)\:2
Run Code Online (Sandbox Code Playgroud)
我的问题是如何一次性逃离整个弦?例如,myStringToEscape = "ABC^ " ~ * ? :DEF";
如何获取escapedString.
fem*_*gon 14
你可以使用QueryParser.escape
,例如:
String escapedString = queryParser.escape(searchString);
queryParser.parse("field:" + escapedString);
Run Code Online (Sandbox Code Playgroud)