如何在Lucene/Solr中为术语查询分配权重

如何在Lucene/Solr中为术语查询分配权重,solr,lucene,Solr,Lucene,我正在以编程方式构建BoostedQuery,并创建两个TermQuery实例,它们将添加到BoostedQuery实例中: Query query1 = new TermQuery(new Term("body", "new")); Query query2 = new TermQuery(new Term("body", "york")); 但我想知道我是否可以像在Solr的qf字段中那样增加一些权重。以下是一个例子: body:new^0.1 body:york^0.1 任何帮助或指示

我正在以编程方式构建BoostedQuery,并创建两个TermQuery实例,它们将添加到BoostedQuery实例中:

Query query1 = new TermQuery(new Term("body", "new"));
Query query2 = new TermQuery(new Term("body", "york"));
但我想知道我是否可以像在Solr的qf字段中那样增加一些权重。以下是一个例子:

body:new^0.1
body:york^0.1
任何帮助或指示都将不胜感激

或者在解析查询中,使用StandardQueryParser,正如您在问题中所指定的:

body:new^0.1
另请参见,

或者在解析查询中,使用StandardQueryParser,正如您在问题中所指定的:

body:new^0.1

另请参见,

是否可以为查询项添加不同的权重?比如纽约=0.1,纽约=0.5?我怎么做?你能帮我解决这个问题吗?tnx@KillBill-当您在
query1
上设置boost时,它不会影响
query2
。您可以将每个子查询设置为具有您想要的任何增强。将每个子查询设置为具有相同的提升实际上是毫无意义的。我想给查询中的每个项赋予不同的权重?正如我在报告中提到的question@KillBill-对,因此给每个
TermQuery
一个不同的提升。如果您使用的是
QueryParser
,语法也很容易支持这一点,请参阅是否可以向查询词添加不同的权重?比如纽约=0.1,纽约=0.5?我怎么做?你能帮我解决这个问题吗?tnx@KillBill-当您在
query1
上设置boost时,它不会影响
query2
。您可以将每个子查询设置为具有您想要的任何增强。将每个子查询设置为具有相同的提升实际上是毫无意义的。我想给查询中的每个项赋予不同的权重?正如我在报告中提到的question@KillBill-对,因此给每个
TermQuery
一个不同的提升。如果您使用的是
QueryParser
,语法也很容易支持这一点,请参阅