我想在Lucene 7中增加一个查询.在之前的版本(<6)中,我只是使用了setBoost(float boost)方法.即
TermQuery termQuery = new TermQuery(new Term("field", "value"));
termQuery.setBoost(2);
Run Code Online (Sandbox Code Playgroud)
在Lucene 7中,只有一个方法包含boost作为参数:
public Weight createWeight(IndexSearcher searcher,
boolean needsScores,
float boost)
Run Code Online (Sandbox Code Playgroud)
这不是负责提升的方法!你知道如何将提升应用于查询吗?
根据LUCENE-6590,所有查询现在都是不可变的,也可以扩展到提升.因此,要应用boost,您可以使用BoostQuery来包装查询.像这样:
Query termQuery = new TermQuery(new Term("field", "value"));
Query boostedTermQuery = new BoostQuery(termQuery, 2);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1310 次 |
| 最近记录: |