Solr 4.x识别来自统计值的文档或识别结果中的文档

时间:2013-12-18 10:28:31

标签: apache solr

我有一个用例,我希望在一组结果中找出符合某些条件的文档。

让我说我有

ID, Price, Name
1,200, Banana
2,250, Apple
3,150, Pear
4,300, Orange
5,350, Lemon

我正在寻找一种方法来标记哪个文件是最低价格,哪个文件是最高价格。我可以使用& stats = true& stats.field = price来识别该值,该价格将返回

<min>150
<max>350

但是我需要告诉我哪个文件是最低点,哪个是最高点(如果有多个文档具有相同的最低或最高价格值,则返回第一个)。

例如

<min>150
 <ID>3
 <Price>150
 <Name>Pear
<max>350
 <ID>5
 <Price>350
 <Name>Lemon

关于如何获得这些价值的任何想法?我专注于统计数据组件,但可能还有其他一些方法让我不知所措。

1 个答案:

答案 0 :(得分:0)

根据此文档,无法通过统计信息http://wiki.apache.org/solr/StatsComponent来获取此信息。

这样做的一种方法是, 首先发送您的统计信息查询,并在您的客户端代码中保留最小值和最大值。 使用price发送两个查询:您的第一个查询,其中行= 1,以获得具有最低价格和价格的文档:您的第一个查询行= 1,以获取最高价格的文档。

第二个选项是,使用分组功能并阅读结果的第一个和最后一个文档:

http://localhost:8983/solr/select?wt=json&indent=true&fl=id,name,price&q=*:*&group=true&group.field=price&group.main=true&sort=price%20asc