如何使用字段优先级调整Solr查询?

时间:2016-04-05 07:13:15

标签: solr

我必须向Apache Solr查询,如下所示:

name:ABCXYZ AND address:Ame*

我发现只有name:ABCXYZ的查询会收到快速响应,只有1个结果。但是,上面的查询的响应时间要高得多,其中包括第二个字段address

如何调整Solr或我的查询,以便优先搜索每个字段?就我而言,这意味着在name之前搜索address

1 个答案:

答案 0 :(得分:1)

"名称:ABCXYZ"直接给出答案,因为查询非常具体并产生一个不同的结果。通常你会期望像"名称:ABCXYZ和地址:Ame *"找到名称为ABCXYZ的所有条目,然后进一步查找地址以" Ame"开头的条目。

关于Solr的事情是,可以以这样的方式配置它,即使"名称:ABCXYZ和地址:Ame *"只产生一个结果,solr将继续搜索与整个查询字符串不匹配的其他条目,但匹配部分字符串。

这意味着您的搜索可能太过"亲切"?

我们使用名为" mm"的查询参数(最小匹配),您可以在solrconfig.xml中的搜索处理程序上设置。此参数指定查询必须匹配的最小子句数。因此,如果mm = 1,您的查询将查找名称为" ABCXYZ'的条目,但也会以" Ame"开头。也许你应该研究这个mm参数?可以设置mm = 100%,这会强制您的搜索处理程序找到我想象的完全匹配。

编辑:" mm"顺便说一下,对于DisMax Query Parsers来说。

相关问题