我有一个包含超过100万份文档的Lucene索引语料库。 我正在通过使用Lucene java API查询命名实体,例如“Susan Witting”。 我想通过搜索“Sue Witting”来扩展我的查询,但希望该术语的权重低于主要查询术语。
我该怎么做呢? 我在Lucene手册中找到了有关增强选项的信息。但它似乎是在索引时设置的,它需要字段。
答案 0 :(得分:3)
您可以单独提升每个查询子句。请参阅Query Javadoc。
答案 1 :(得分:0)
如果您想对词语的词语赋予不同的权重。那么
Query#setBoost(float)
没用。更好的方法是:
Term term = new Term("some_key", "stand^3 firm^2 always");
这允许对同一术语查询中的单词赋予不同的权重。在这里,由stand
提升的单词always
具有默认的提升值。