クエリと一致するネストされたオブジェクトの値だけを合計する必要があります。 ElasticSearchはクエリに一致するドキュメントを決定し、次にすべてのネストされたオブジェクトを合計します。以下の概要から、nestedobjects.objtype = "A"を検索し、一致するネストされたオブジェクトのobjvalueの合計を戻したいと思っています。これは可能ですか?もしそうなら、どうですか?ここでElasticSearchで集計されたネストされたオブジェクトの値のみを集計します。
マッピング
ここ{
"myindex": {
"mappings": {
"mytype": {
"properties": {
"nestedobjects": {
"type": "nested",
"include_in_parent": true,
"properties": {
"objtype": {
"type": "string"
},
"objvalue": {
"type": "integer"
}
}
}
}
}
}
}
}
は私の文書は
PUT /myindex/mytype/1
{
"nestedobjects": [
{ "objtype": "A", "objvalue": 1 },
{ "objtype": "B", "objvalue": 2 }
]
}
PUT /myindex/mytype/2
{
"nestedobjects": [
{ "objtype": "A", "objvalue": 3 },
{ "objtype": "B", "objvalue": 3 }
]
}
ここに私のクエリコードがありますさ。
POST allscriptshl7/_search?search_type=count
{
"query": {
"filtered": {
"query": {
"query_string": {
"query": "nestedobjects.objtype:A"
}
}
}
},
"aggregations": {
"my_agg": {
"sum": {
"field": "nestedobjects.objvalue"
}
}
}
}
ありがとう、私は少しでそれをテストします。 – user481779
広告されたとおりに動作します! – user481779
実際の解決策はありません:フィルターの既知の値に依存し、ヒストグラム、日付ヒストグラム、または予期しないキーを持つ用語では機能しません。 – Sebastian