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