Solr:排除仅数字匹配项



我搜索游戏"质量效应2"

http://localhost:8085/solr/select/?defType=edismax&qf=title&q=Mass+Effect+2&mm=1
除了"质量效应2"和"摊

牌效应"之外,它还发现了诸如"无主之地2","原型2"和其他名称中带有"2"的游戏。所以我想排除仅与"2"匹配的文档。

title字段定义为:

<field name="title" type="text" indexed="true" stored="true" multiValued="false" />

这不是一个确切的答案,但一个简单的答案,可以适合您的情况。您可以使用最小应匹配参数和 edismax 查询解析器,因此,如果查询中有数字,您可以增加该数字并使用 2,例如。

http://wiki.apache.org/solr/DisMaxQParserPlugin#mm_.28Minimum_.27Should.27_Match.29

考虑到用例不是仅排除数字,而是可以告诉"使用参数只是为了提升",您可以重写查询并使用嵌套查询来获取分数。如所写:http://searchhub.org/2009/03/31/nested-queries-in-solr可以写入您的查询

 text:Mass Effect OR query:"{!dismax mm=2 }Mass effect 2"

这个想法是使查询没有数字,并将数字作为嵌套查询包含在内以增加数字

"pf"短语提升而不是引用短语搜索会给你更好的结果吗?它说所有元素都在接近,不一定是相同的顺序。

相关内容

  • 没有找到相关文章

最新更新