Solr:排除只有数字匹配

时间:2013-01-23 17:06:45

标签: solr edismax

我搜索游戏“质量效应2”

http://localhost:8085/solr/select/?defType=edismax&qf=title&q=Mass+Effect+2&mm=1

除了“质量效应2”和“摊牌效应”之外,它还可以找到“Borderlands 2”,“Prototype 2”等名称以及其他名称为“2”的游戏。所以我想排除只与“2”匹配的文件。

title字段定义为:

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

1 个答案:

答案 0 :(得分:1)

这不是一个确切的答案,但一个简单的答案可能适合你的情况。您可以使用minimum should match参数和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"

这个想法是在没有数字的情况下进行查询,并将数字作为嵌套查询包含来提升数字