我搜索游戏“质量效应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" />
答案 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"
这个想法是在没有数字的情况下进行查询,并将数字作为嵌套查询包含来提升数字