Elasticsearch可以通过聚合(aggregation)功能来实现分类聚合(classification aggregation)。在聚合查询中,通过指定聚合字段和相应的聚合操作,在索引数据中对指定字段进行聚合统计,从而得出分类聚合的结果。
具体来说,分类聚合可以使用terms聚合,例如:
GET /_search
{
"size": 0,
"aggs": {
"genre": {
"terms": {
"field": "genre.keyword"
}
}
}
}
其中,genre是聚合的名称,terms表示使用terms聚合操作,field指定了聚合的字段,这里使用了.keyword来确保以精确值进行聚合(避免字符串分词)。
另外,如果要对聚合结果进行排序,可以添加order子句,如:
GET /_search
{
"size": 0,
"aggs": {
"genre": {
"terms": {
"field": "genre.keyword",
"order": {
"_count": "desc"
}
}
}
}
}
这里将聚合结果按_count字段(即聚合数量,terms聚合默认包含该字段)倒序排序。
总之,使用Elasticsearch的分类聚合功能可以非常方便地对索引数据进行分类统计,提供丰富的数据分析能力。