Elasticsearch中点与大于号的区别

时间:2017-12-05 16:46:21

标签: elasticsearch

Elasticsearch中key.other_keykey>other_key之间的区别是什么?我在this page in docs中遇到过它并且无法找到进一步解释为什么需要它以及它与点的不同之处。

1 个答案:

答案 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_statsrock的子聚合),点表示要用于聚合的聚合度量在这种情况下排序avg

希望有所帮助!