降低Solr对特定类别的分数

时间:2012-12-31 15:30:15

标签: solr filtering

我正在使用Solr在我的目录中搜索产品。 我试图从“书籍”类别的产品中得分较低,但没有成功。 我也尝试过滤“书籍”类别的结果,但我仍然得到它们,所以我认为我做错了。 “类别”字段已编制索引。

这是我做过的一次尝试(在许多其他尝试中):

http://localhost:8080/solr/collection1/query?q=iphone+4s&rows=4&fq=price:[*+TO+500]&debugQuery=on&fq=not(query(category:Books))

我也尝试过使用bf参数对“书籍”产生负面影响,但仍然没有运气。

当我拥有“图书”和其他类别时,我该怎么做才能降低分数?以及如何使用特定类别过滤结果?

1 个答案:

答案 0 :(得分:1)

您可以尝试将以下代码附加到您的请求中: -

&bq=(*:* -category:Books)^1000000

数字1000000指定了一个非常大的数字,它将增强那些类别不是书籍的记录。

因此,您的代码变为: -

http://localhost:8080/solr/collection1/query?q=iphone+4s&rows=4&fq=price:[*+TO+500]&debugQuery=on&bq=(*:* -category:Books)^1000000

要过滤具有特定类别的结果,请将以下代码附加到您的请求中: -

&fq=category:Books

以上将显示所有类别为图书的记录。

要获取类别不是Books的所有记录,请尝试以下操作: -

&fq=(*:* -category:Books)