0

現在、次のクエリを使用して値の範囲のカウントを取得しています:

$ curl -XGET 'http://localhost:9200/myindex/mytype/_count' -d '{
    range:{myfield:{gt:"start_val",lt:"end_val"}}
}
'

現在、いくつかの範囲があり、各範囲のカウントが必要です。毎回再クエリするのではなく、1 回のクエリでそれらを取得できますか?

search_type=countを使用してマルチ検索を調べましたが、おそらく従うべき正しいアプローチではありません...(グループ化ではなく、集計されたカウントが得られました...誤用したようです)

編集:範囲ファセットが素晴らしいことを発見しましたが、残念ながら私の値は数値でも日付でもなく、単なる文字列です...

EDIT2:これは、受け入れられた回答に基づいて、私が最終的に得たものです:

$ curl -XGET 'http://localhost:9200/myindex/mytype/_search?search_type=count' -d '{
    facets : {
        range1 : {
            filter : {
                range:{myfield:{gt:"start_val1",lt:"end_val1"}}
            }
        },
        range2 : {
            filter : {
                range:{myfield:{gt:"start_val2",lt:"end_val2"}}
            }
        }
    }
}
'
4

1 に答える 1

1

ESの作成者が解決策を提供するリンクを次に示します(つまり、いくつかのフィルターファセット)

解決

したがって、範囲ごとに 1 つのフィルター ファセットが問題なく機能するはずです。

ドキュメントへのリンクは次のとおりです。

ドキュメント API

それが役に立てば幸い

于 2013-09-26T08:30:14.600 に答える