使用Lucene';s API,我可以提高术语吗?

使用Lucene';s API,我可以提高术语吗?,lucene,full-text-search,Lucene,Full Text Search,使用Lucene的查询解析器,可以通过添加“^n”来增加术语(使它们在搜索结果中的权重更高),例如,“苹果^5派”将赋予术语“苹果”五倍的重要性。在使用API构造查询时是否可以这样做?请注意,我不想提升字段或文档,而是提升字段中的单个术语。您只需要使用查询类的setBoost(float)方法 比如说 TermQuery tq1 = new TermQuery(new Term("text", "term1")); tq1.setBoost(5f); TermQuery tq2 = new Te

使用Lucene的查询解析器,可以通过添加“^n”来增加术语(使它们在搜索结果中的权重更高),例如,“苹果^5派”将赋予术语“苹果”五倍的重要性。在使用API构造查询时是否可以这样做?请注意,我不想提升字段或文档,而是提升字段中的单个术语。

您只需要使用
查询
类的
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

谢谢!现在为什么我找不到呢…我只找到了文档增强和字段增强。现在我觉得自己很傻,因为我不得不问。但是谢谢!此api不适用于lucene 6。。你必须围绕一个boostquery?有点浪费?你知道另一条路吗?