3
使用Lucene的查询解析器,可以通过附加“^ n”来提高术语(使它们在搜索结果中加权)。 “apple^5 pie”将会赋予“苹果”这个词五倍的重要性。使用API构建查询时可以这样做吗?请注意,我不想增加字段或文档,而是增加字段中的单个字词。使用Lucene的API,我可以提升条款吗?
使用Lucene的查询解析器,可以通过附加“^ n”来提高术语(使它们在搜索结果中加权)。 “apple^5 pie”将会赋予“苹果”这个词五倍的重要性。使用API构建查询时可以这样做吗?请注意,我不想增加字段或文档,而是增加字段中的单个字词。使用Lucene的API,我可以提升条款吗?
您只需要使用Query
类的setBoost(float)
方法。
例如
TermQuery tq1 = new TermQuery(new Term("text", "term1"));
tq1.setBoost(5f);
TermQuery tq2 = new TermQuery(new Term("text", "term2"));
tq2.setBoost(0.8f);
BooleanQuery query = new BooleanQuery();
query.add(tq1, Occur.SHOULD);
query.add(tq2, Occur.SHOULD);
这相当于解析查询text:term1^5 text:term2^0.8
。
谢谢!现在为什么我找不到......我发现的所有内容都是文档提升和字段提升。现在我不得不提问的时候觉得很蠢。但是,谢谢! – Frungi
-1使OP感到哑巴。 –
这个API不适用于lucene 6 ..你必须环绕boostquery?有点浪费?你知道其他方式吗? –