Solr返回状态并排除等于零的值

时间:2018-08-13 13:12:39

标签: solr solr-query-syntax

由于我目前正在学习Solr,而且非常新手,因此我不确定是否有可能。我正在查询包含几十万个数据集的数据集,并返回这些集合的价格统计信息。我的大部分数据的价格都远高于0(理想情况下将超过150或500),但是对于某些查询,价格远高于0。

是否有某种方法可以将统计信息排除在最小值,最大值,平均值以及所有低于设定值(在这种情况下为0)的值之外?

我尝试过/select?q=*%3A*&wt=json&indent=true&stats=true&stats.field={!min=5000}PRICE&indent=true,但这似乎并不那么容易。

我看到的数据示例如下

"stats":{
    "stats_fields":{
        "PRICE":{
            "min":0.0,
            "max":81977.0,
            "count":163,
            "missing":0,
            "sum":799747.0,
            "sumOfSquares":5.9263205819E10,
            "mean":4906.423312883436,
            "stddev":18482.44220103939
        }
    }
}

1 个答案:

答案 0 :(得分:0)

统计信息组件可处理检索到的文档集,因此,如果您不希望对带有0的文档进行计数,请仅请求具有较高值的​​文档:

?q={0 TO *]

这将获取大于0的任何值(因此仍将包含0.00001)。如果实际值从1开始,则可以使用q=[1 TO *]来包含1({是排他的范围,而[是排他的范围)。

您还可以通过fq应用过滤器来过滤结果集,或者使用JSON Facets来计算一组文档的统计信息。