Apache Solr中的Distinct和Sorted结果

时间:2013-11-22 20:44:48

标签: solr

我正在尝试使用Apache Solr来创建产品目录。假设我有三个被索引为Solr facets的字段:

* SKU
* Color
* Price

让我们说这是我的索引数据:

SKU /颜色/价格

1. Foo / Blue  / 2.00
2. Bar / Red   / 3.50
3. Foo / Red   / 1.00
4. Bar / Green / 5.00

我想要一个在SKU和最低价格上返回limit=1的查询。因此,第2行和第2行3以上。

2 个答案:

答案 0 :(得分:0)

我认为只要在Solr中使用一个查询就能实现这一目标

首先,您将执行此查询以获取所有SKU的列表作为构面

http://localhost:8080/select/?facet=on&facet.field=SKU&rows=0&q=*:*

然后您将不得不使用PHP或某种语言迭代结果,并且对于每个SKU,您可以向Solr发送以下查询以获得该SKU的最低价格

http://localhost:8080/jobs/select/?fq=SKU:$sku&rows=1&q=*:*&sort=price asc

Solr请求的总数将是:n + 1,其中1表示获取所有SKU列表的初始请求,然后是n,其中n是唯一SKU的数量。

答案 1 :(得分:0)

您可以按SKU分组并按价格排序,以最低价格获得每个SKU一件产品。

group=on&group.field=SKU&group.sort=price asc

这样的东西

有关详细信息,请参阅Solr Wiki上的this页面。