1

solr 5.2.1 を使用して、SQL で次のようなことをしようとしています。

SELECT COUNT(DISTINCT(SESSION_ID)), COUNTRY FROM LOG
GROUP BY COUNTRY

の回答は機能しますが、json.facet を使用します。クエリとフィルター サービスを書き直さなくても、このクエリのバナー パネルを作成したいと思います。

これは私がこれまでに得たものです:

stats.countDistinct=true stats.distinctValues=true/false

JSON 応答:

  "responseHeader":{
    "status":0,
    "QTime":3,
    "params":{
      "q":"*:*",
      "stats.countDistinct":"true",
      "indent":"true",
      "stats":"true",
      "stats.facet":"country_s",
      "fq":"serverUtc_dt:[2015-09-01T07:59:00.000Z TO 2015-09-01T07:59:01.000Z]",
      "rows":"0",
      "wt":"json",
      "stats.distinctValues":"false",
      "stats.field":"sessionid_s"}},

distinctValues が true か false かに関係なくcountDistinct、結果に値は提供されません。

以下:

stats.calcdistinct=true

JSON 応答:

  "responseHeader":{
    "status":0,
    "QTime":7,
    "params":{
      "q":"*:*",
      "stats.calcdistinct":"true",
      "indent":"true",
      "stats":"true",
      "stats.facet":"country_s",
      "fq":"serverUtc_dt:[2015-09-01T07:59:00.000Z TO 2015-09-01T07:59:01.000Z]",
      "rows":"0",
      "wt":"json",
      "stats.distinctValues":"false",
      "stats.field":"sessionid_s"}},

これは私が望むことをしているようですが、結果に何十万もの個別の値が追加されています。

ドキュメントによると、calcdistinct は countDistinct と distinctValues を true に設定しますが、calcdistinct を countDistinct と distinctValues true に置き換えても同じことは行われません。

何十万もの個別の値を取得せずに個別のカウントを取得する方法はありますか?

これは facet.json を使用せずに実行できますか?

4

1 に答える 1