Top hits
агрегация находит значение из полного набора результатов, в то время как при использовании cardinality
он дает только отфильтрованный набор результатов.
Вы можете использовать агрегацию cardinality
, как показано ниже:
{
"aggs" : {
"UNIQUE_COUNT" : {
"cardinality" : {
"field" : "your_field"
}
}
}
}
Эта агрегация сопряжена с некоторой ответственностью. Чтобы лучше понять ее, ознакомьтесь с приведенной ниже документацией ElasticSearch.
Ссылка: Агрегирование кардинальности
Для сортировки вы можете обратиться к приведенному ниже примеру, где вы можете передать агрегацию в порядке terms
, для которого создан ваш сегмент:
{
"aggs": {
"AGG_NAME": {
"terms": {
"field": "you_field",
"size": 10,
"order": {
"UNIQUE_COUNT.doc_count": "asc"
},
"min_doc_count": 1
},
"aggs": {
"UNIQUE_COUNT": {
"cardinality": {
"field": "your_field"
}
}
}
}
}
}