メインクエリがあり、いくつかのサブクエリの一致数が必要です。solr の言葉では、facet.queryが必要です。私が見逃しているのは、 value_count 集計doc_count
のような単純な集計です。
助言がありますか?
私は好きではない2つの可能な解決策を見つけました:
- 上のvalue_countメトリックでフィルタ集計を使用します。
_id
例:
GET _search
{
"query": {
"match_main": {}
},
"aggs": {
"facetvalue1": {
"filter": {
"bool": {
"should": [
{"match": { "name": "fred" }},
{"term": { "lastname": "krueger" }}
]
}
},
"aggs": {
"count": {
"value_count": {
"field": "_id"
}
}
}
},
"facetvalue2": {
"filter": {
"term": { "name": "freddy" }
},
"aggs": {
"count": {
"value_count": {
"field": "_id"
}
}
}
}
}
}
- マルチ検索 APIを使用する
例:
GET _msearch
{"index":"myindex"}
{"query":{"match_main": {}}}
{"index":"myindex"}
{"size": 0, "query":{"match_main": {}}, "filter": {"bool": {"should":[{"match": { "name": "fred" }},{"term": { "lastname": "krueger" }}]}}}
{"index":"myindex"}
{"size": 0, "query":{"match_main": {}},"filter": {"term": { "name": "freddy" }}}
match_main
ソリューション 2 の方が高速ですが、複雑なクエリを想像してみてください。doc_count:{}
したがって、 の代わりにがある場合は、ソリューション 1 をお勧めしvalue_count:{"field":"_id"}
ます。
しかし、基本的な質問に戻ります。elasticsearch の solrfacet.query
に対応するものは何ですか?