我需要我的查询解析器只读取“文本”字段。
例如,假设我的查询是:
文字:“这只狐狸”或标题:“棕色狗”
为了突出显示,我需要解析器/搜索器只使用文本:“this fox”部分进行搜索。
在2.4版中,这一功能运行良好,但升级到2.9.3版后,情况发生了变化。
示例代码:
IndexSearcher is = new IndexSearcher(fsDir);
QueryParser qp = new QueryParser("text", new StandardAnalyzer(nostop));
qp.setMultiTermRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
Query queryDiv;
try {
query = is.rewrite(queryParser.parse(query_str));
}
catch (ParseException e) {
pw.print("error: Incorrect query format");
pw.close();
return;
}
Hits hits = is.search(queryDiv, sort);
QueryScorer scorer = new QueryScorer(query, "text");
出于某种原因,我不知道,lucene 2.9.3在2.4版本中没有显示任何结果,因为它忽略了文档没有的字段,更不用说其中有一个OR条件。
有什么想法吗?