LoginSignup
2

More than 5 years have passed since last update.

Solr で統計関数

Posted at

何か色々すっ飛ばしてますが、数値フィールドで統計関数を使う事情があったので備忘録的に書いておきます。

まとめ

  • stats=true&stats.field=hoge で、フィールド hoge に対する最小値、最大値、件数、空白数、合計、平方和、平均、標準偏差が出力できる

やりかた

リクエストパラメータに stats=truestats.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系で追加された新機能については検証中です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2