我在我的一个搜索项目中使用SOLR和mongoDB。我必须说,SOLR非常强大。 目前,我正在寻找一种方法,如果查询是多字的话,为不同的关键字设置不同的分数。
e.g。如果用户搜索黑色娃娃屋
黑色的重量应大于娃娃,娃娃的重量应大于房屋。
黑色>娃娃>房子
是否可以在SOLR中实现此功能。如果是,怎么样?
答案 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个。