如何在Solr中获取两个或多个单词的常见产品详细信息

时间:2014-03-31 05:32:47

标签: magento solr

我遇到了无法解决的问题。部分是因为我无法用正确的术语来解释它。我很陌生,对这个笨拙的问题感到抱歉。

您可以在下面看到我的目标概述。

我正在使用Magento CE 1.7.0.2& Solr 4.6.0。

在这里你可以看到我的目标..

我搜索带有adidas black

一词的产品

在这里,我可以看到我的结果

http://127.0.0.1:8080/solr/collection1/select?q=adidas+black

我有大约600种产品,但我发现它搜索 adidas 黑色 adidas black 的产品。

它给出了所有这些结果,但我只想要 adidas black

我如何直接从Solr获得这些产品。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您的选项很少,但在您的情况下,简短的答案是在查询字词周围加上双引号,例如:

http://127.0.0.1:8080/solr/collection1/select?q="adidas+black"

除了双引号之外,您还可以指定另一个参数 - qs(查询转换),它指示术语可以显示的距离,并且仍然被视为匹配。如果你说qs = 0,意味着他们必须完全相邻。如果你说qs = 1,那就意味着,一个术语可能在中间,所以'adidas shoes black'仍然匹配

所以,你可以这样查询:

http://127.0.0.1:8080/solr/collection1/select?q="adidas+black"&qs=2

另一个我最喜欢的选择是省略双引号,并添加mm(最小匹配条件)。如果需要,您可以将其设置为100%,这意味着所有条款都是必需的。或者您可以将其设置为合理的百分比,这样即使所有术语都没有完全匹配,用户也会得到一些结果。

您还可以添加pf(短语字段)参数以按短语提升。因此,黑色,阿迪达斯和阿迪达斯黑色将匹配(如果你没有mm = 100%),但'adidas black'将是第一个结果,因为它将获得最高分。

所以,你可以这样查询:

http://127.0.0.1:8080/solr/collection1/select?q=adidas+black&mm=65%&pf=YourFieldName

答案 1 :(得分:0)

就我而言,它的工作正常......

http://127.0.0.1:8080/solr/collection1/select?q="adidas+black"&indent=true&defType=dismax&pf=YourFieldName&qs=2