Elasticsearch中key.other_key
和key>other_key
之间的区别是什么?我在this page in docs中遇到过它并且无法找到进一步解释为什么需要它以及它与点的不同之处。
答案 0 :(得分:0)
使用buckets_path
syntax时,这些符号一起使用:
AGG_SEPARATOR = '>' ;
METRIC_SEPARATOR = '.' ;
AGG_NAME = <the name of the aggregation> ;
METRIC = <the name of the metric (in case of multi-value metrics aggregation)> ;
PATH = <AGG_NAME> [ <AGG_SEPARATOR>, <AGG_NAME> ]* [ <METRIC_SEPARATOR>, <METRIC> ] ;
使用pipeline aggregations或排序terms
聚合的广告时,您需要这样做。
语义上的差异最好用您在问题中引用的page中的示例显示:
GET /_search
{
"aggs" : {
"countries" : {
"terms" : {
"field" : "artist.country",
"order" : { "rock>playback_stats.avg" : "desc" }
},
"aggs" : {
"rock" : {
"filter" : { "term" : { "genre" : "rock" }},
"aggs" : {
"playback_stats" : { "stats" : { "field" : "play_count" }}
}
}
}
}
}
}
以上内容将根据摇滚歌曲中的平均播放次数对艺术家的国家/地区进行排序。
此处>
符号用于分隔不同级别的聚合(playback_stats
是rock
的子聚合),点表示要用于聚合的聚合度量在这种情况下排序avg
。
希望有所帮助!