私は今日間これを理解しようとしたC#のNESTといくつかの助けが必要です:弾性検索NEST:マルチレベルの深いAggregrationsを読む
状況: 私は複数の種類の文書をバック与えクエリを持って、私対応するdoc_countを使用してすべての型をリストする集約を行いました。したがって、インスタントタイプのチケットでは、この検索アクションで299のチケットがあります。 (https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/nested-aggregation-usage.html#_handling_responses_25)
var tags = response.Aggs.Nested("tags");
var tagNames = tags.Terms("tag_names");
これは1つのレベルの深aggegrationsで動作しますが、鉱山は、いくつかのレベルが深い:
は今、私は次の操作を実行する必要がマニュアルに従って、データを取得する必要があります。
これはAggs句です:
"aggs": {
"filtered_types": {
"terms": {
"field": "_type"
}
},
"all_types": {
"global": {},
"aggs": {
"all_result_types": {
"filter": {
"bool": {
"must": [
{
"query_string": {
"default_field": "_all",
"query": "\"test\""
}
}
]
}
},
"aggs": {
"result_types": {
"terms": {
"field": "_type"
}
}
}
}
}
}
}
私の応答は、次のようになります。応答が正しい
"aggregations": {
"filtered_types": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "ticket",
"doc_count": 105
},
{
"key": "iteration",
"doc_count": 10
}
]
},
"all_types": {
"doc_count": 2516,
"all_result_types": {
"doc_count": 193,
"result_types": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "ticket",
"doc_count": 105
},
{
"key": "comment",
"doc_count": 67
},
{
"key": "iteration",
"doc_count": 10
},
{
"key": "profile",
"doc_count": 6
},
{
"key": "project",
"doc_count": 3
},
{
"key": "company",
"doc_count": 1
},
{
"key": "sla",
"doc_count": 1
}
]
}
}
}
}
、これは私が必要とする正確に何ですが、NESTで私が取得するように見えることはできません私のデータが存在する "result_types"に変換します。
私は誰でもデータにアクセスするための解決策を教えてくれることを願っています。
ありがとうございます、あなたは非常に明確な答えです!私は.Filter()について知らなかった: –
心配しないで、喜んで:) –