使用Lucene的API,我可以提高条款吗?

时间:2011-12-01 06:44:13

标签: lucene full-text-search

使用Lucene的查询解析器,可以通过附加“^ n”来增加术语(使它们在搜索结果中的权重更高)。 “apple ^ 5 pie”将赋予术语“apple”五倍的重要性。在使用API​​构建查询时是否可以执行此操作?请注意,我不想增加字段或文档,而是增加字段中的单个术语。

1 个答案:

答案 0 :(得分:11)

您只需使用setBoost(float)类的Query方法。

例如

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