我想使用Lucene查询解析器解析一些文本,对文本进行基本的文本预处理。我使用了以下代码行:
<wsdl:operation name="yourOperation">
<soap:operation soapAction="yourSoapAction" ... />
但是,我收到了一个错误:
Analyzer analyzer = new EnglishAnalyzer();
QueryParser parser = new QueryParser("", analyzer);
String text = "...";
String ret = parser.parse(QueryParser.escape(text)).toString();
答案 0 :(得分:2)
使用Query.escape()
删除特殊字符。但是它不会删除
与,非或
是在lucene搜索中使用的关键字。
有两种处理方法:
转换为小写字母可以解决此问题,因为只有大写的AND,NOT和OR是关键字。它们被视为小写的普通单词。
答案 1 :(得分:1)
对于那些遇到这个问题的人,我意识到我的解析器会抛出“&#34; NOT&#34;”这个词的异常,即使在转义之后也是如此。我不得不用其他字手动替换它。