【发布时间】:2017-01-09 15:49:25
【问题描述】:
我想使用 Lucene 查询解析器解析一些文本,以对文本进行基本的文本预处理。我使用了以下代码行:
Analyzer analyzer = new EnglishAnalyzer();
QueryParser parser = new QueryParser("", analyzer);
String text = "...";
String ret = parser.parse(QueryParser.escape(text)).toString();
但是,我收到一个错误:
Exception in thread "main" org.apache.lucene.queryparser.classic.ParseException: Cannot parse '': Encountered "<EOF>" at line 1, column 0.
【问题讨论】:
-
你使用的是什么版本的lucene? QueryParser 中的空参数是什么?
-
我使用的是 Lucene 6.1.0。空参数是一个字符串,如果传递一个类似的值:“val”,那么变量文本:“如何获取 ``你的电池坏了''消息消失”预处理后显示:“val:how val:get val:your val:batteri val:broken val:messag val:go val:awai”。我不希望“val:”进入预处理行,因此我将其保留为空白(“”)。
-
@FedericoPiazza:是因为字符串的长度吗?对于我收到错误的字符串,是一个很长的字符串!
-
您的代码不会为我抛出异常,但会生成一个空字符串(预期)。这是抛出异常的地方吗?您的异常是由于尝试解析空字符串引起的,所以也许这个结果正在某个地方重新解析?
-
尝试重新索引您的数据。
标签: java lucene query-parser