我有一个用例,我希望在一组结果中找出符合某些条件的文档。
让我说我有
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
关于如何获得这些价值的任何想法?我专注于统计数据组件,但可能还有其他一些方法让我不知所措。
答案 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