0

我搜索游戏“质量效应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" />
4

2 回答 2

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"

这个想法是在没有数字的情况下进行查询,并将数字作为嵌套查询包含在内以增加数字

于 2013-01-28T10:42:18.313 回答
0

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

于 2013-01-23T19:30:29.327 回答