Lucene:如何在查询时为不同的搜索词分配权重?

时间:2012-04-14 17:46:36

标签: lucene

我有一个包含超过100万份文档的Lucene索引语料库。 我正在通过使用Lucene java API查询命名实体,例如“Susan Witting”。 我想通过搜索“Sue Witting”来扩展我的查询,但希望该术语的权重低于主要查询术语。

我该怎么做呢? 我在Lucene手册中找到了有关增强选项的信息。但它似乎是在索引时设置的,它需要字段。

2 个答案:

答案 0 :(得分:3)

您可以单独提升每个查询子句。请参阅Query Javadoc

答案 1 :(得分:0)

如果您想对词语的词语赋予不同的权重。那么

Query#setBoost(float)

没用。更好的方法是:

Term term = new Term("some_key", "stand^3 firm^2 always");

这允许对同一术语查询中的单词赋予不同的权重。在这里,由stand提升的单词always具有默认的提升值。