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

Lucene:如何在查询时为不同的搜索词分配权重?,lucene,Lucene,我有一个Lucene索引的语料库,包含超过100万个文档。 我正在使用lucenejavaapi进行查询,以搜索命名实体,例如“susanwitting”。 例如,我想通过搜索“Sue Witting”来扩展我的查询,但希望该术语的权重低于主查询术语 我该怎么做呢? 我在Lucene手册中找到了关于增强选项的信息。但它似乎设置为索引,并且需要字段。您可以独立增强每个查询子句。请参阅。您可以独立提升每个查询子句。如果您想对术语的单词赋予不同的权重,请参见。。然后 Query\setBoost(fl

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

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

您可以独立增强每个查询子句。请参阅。

您可以独立提升每个查询子句。如果您想对术语的单词赋予不同的权重,请参见。

然后

Query\setBoost(float)

这是没有用的。更好的方法是:

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

这允许对同一术语查询中的单词赋予不同的权重。在这里,单词
stand
增加了三个,但
始终
具有默认的增加值。

如果您想给术语的单词赋予不同的权重。

Query\setBoost(float)

这是没有用的。更好的方法是:

Term term = new Term("some_key", "stand^3 firm^2 always");
这允许对同一术语查询中的单词赋予不同的权重。这里,单词
stand
增加了三个,但是
总是
是默认的增加值