何か色々すっ飛ばしてますが、数値フィールドで統計関数を使う事情があったので備忘録的に書いておきます。
まとめ
-
stats=true&stats.field=hoge
で、フィールドhoge
に対する最小値、最大値、件数、空白数、合計、平方和、平均、標準偏差が出力できる
やりかた
リクエストパラメータに stats=true
と stats.field=hoge
をつけると、 .stats.stats_fields.hoge
に検索結果の範囲内で統計情報がついて帰ってきます。何に使うかはその人次第です。検索結果の最大値に応じてレスポンスを変化させたい、みたいな場合に使ったりできますね。
$ curl 'http://localhost:8983/solr/core1/select?q=*:*&wt=json&rows=0&fl=unique_key&stats=true&stats.field=price&wt=json'
{
"responseHeader": {
"status": 0,
"QTime": 6,
"params": {
"fl": "unique_key",
"stats.field": "price",
"stats": "true",
"q": "*:*",
"wt": "json",
"rows": "0"
}
},
"response": {
"numFound": 104472,
"start": 0,
"docs": []
},
"stats": {
"stats_fields": {
"price": {
"min": 20.0,
"max": 2618200.0,
"count": 104472,
"missing": 0,
"sum": 1.730519678E9,
"sumOfSquares": 2.64303182063568E14,
"mean": 16564.435236235546,
"stddev": 47492.48356305639
}
}
}
}
Solr 1.4 以降で動くと思います。
Solr 6系で追加された新機能については検証中です。