我想在Lucene 7中增加一个查询.在之前的版本中(< 6)我只是使用了setBoost(float boost)方法.即
TermQuery termQuery = new TermQuery(new Term("field", "value"));
termQuery.setBoost(2);
在Lucene 7中,只有一个方法包含boost作为参数:
public Weight createWeight(IndexSearcher searcher,
boolean needsScores,
float boost)
这不是负责提升的方法!
你知道如何将提升应用于查询吗?
解决方法:
所有查询现在都是不可变的,这也延伸到每个LUCENE-6590的提升.因此,要应用提升,您将使用BoostQuery来包装查询.像这样:
Query termQuery = new TermQuery(new Term("field", "value"));
Query boostedTermQuery = new BoostQuery(termQuery, 2);