3
我在Elasticsearch中獲得了大量數據。我的douments有一個名爲「記錄」的嵌套字段,其中包含具有多個字段的對象列表。Elasticsearch聚合嵌套內部匹配
我希望能夠從記錄列表中查詢特定對象,因此我在查詢中使用inner_hits字段,但它沒有幫助,因爲聚合使用大小0,因此不會返回結果。
我沒有成功地僅爲inner_hits進行聚合工作,因爲聚合返回記錄中所有對象的結果,而不管查詢。
這是我使用的查詢: (每個文檔都有first_timestamp和last_timestamp領域,並在記錄列表中的每個對象都有一個時間戳字段)
curl -XPOST 'localhost:9200/_msearch?pretty' -H 'Content-Type: application/json' -d'
{
"index":[
"my_index"
],
"search_type":"count",
"ignore_unavailable":true
}
{
"size":0,
"query":{
"filtered":{
"query":{
"nested":{
"path":"records",
"query":{
"term":{
"records.data.field1":"value1"
}
},
"inner_hits":{}
}
},
"filter":{
"bool":{
"must":[
{
"range":{
"first_timestamp":{
"gte":1504548296273,
"lte":1504549196273,
"format":"epoch_millis"
}
}
}
],
}
}
}
},
"aggs":{
"nested_2":{
"nested":{
"path":"records"
},
"aggs":{
"2":{
"date_histogram":{
"field":"records.timestamp",
"interval":"1s",
"min_doc_count":1,
"extended_bounds":{
"min":1504548296273,
"max":1504549196273
}
}
}
}
}
}
}'
漂亮!這正是我的意思。 – hanetz