【发布时间】:2011-12-01 09:57:33
【问题描述】:
我所有的结果都是“活跃的、不活跃的、历史的”类型——这是一个由 Solr 索引的字段。
我希望返回的结果提升为 type="active"。
我可以订购就足够了,但它不是很好。
因此,当用户搜索“生病”一词时,他们会得到与生病最相关的结果,但对于处于活动状态的文档来说,搜索结果会更高。
不仅仅是一个排序的结果集!
【问题讨论】:
我所有的结果都是“活跃的、不活跃的、历史的”类型——这是一个由 Solr 索引的字段。
我希望返回的结果提升为 type="active"。
我可以订购就足够了,但它不是很好。
因此,当用户搜索“生病”一词时,他们会得到与生病最相关的结果,但对于处于活动状态的文档来说,搜索结果会更高。
不仅仅是一个排序的结果集!
【问题讨论】:
您可以使用edismax parser 和以下提升查询bq 参数将您想要的结果提升到顶部...
http://localhost:8983/solr/select/?q=sick&defType=edismax&bq=type:active^5.0
在本例中,您将添加一个提升查询来增加类型为活动的文档的相关性。
以下是 Solr Wiki DisMaxQParserPlugin 页面上的更多示例。
【讨论】:
上面的示例将创建一个加法提升。 如果您想要“type=active”的乘法提升,您可以添加:
&boost=if(termfreq(type,"active"),2,1)
这为“type=active”提供了 2 倍的提升
【讨论】: