SOLR - 多字搜索查询中不同单词的不同分数

时间:2016-07-01 11:28:24

标签: solr

我在我的一个搜索项目中使用SOLR和mongoDB。我必须说,SOLR非常强大。 目前,我正在寻找一种方法,如果查询是多字的话,为不同的关键字设置不同的分数。

e.g。如果用户搜索黑色娃娃屋

黑色的重量应大于娃娃,娃娃的重量应大于房屋。

黑色>娃娃>房子

是否可以在SOLR中实现此功能。如果是,怎么样?

2 个答案:

答案 0 :(得分:1)

您可以为标准lucene查询语法中的每个术语赋予单独的权重(在名为text的字段中搜索):

text:black^10 text:doll^5 text:house

这将black的重量是house的十倍,而doll的重量是house的五倍,但只有{{1}的一半重量}}。您必须调整权重才能获得您正在寻找的结果。如果您想将black字段中的常规文本与(e)dismax用作查询解析器,则可以使用q=添加将这些提升与查询本身分开应用。

答案 1 :(得分:0)

您是否尝试过提高查询中的条款?您可以在查询中为术语指定不同的提升值。 示例:如果您将查询转换为:

grid rowconfigure

你得到的结果与顶级文件将匹配黑色,下一个黑色,下一个与房子。

它将术语权重与增加值相乘。这里黑色有6个,娃娃有5个,房子有2个。