Если вы не получаете никакой ошибки при выполнении поиска, похоже, это больше похоже на проблему с данными.Вы уверены, что у вас есть хотя бы один документ с заполненным полем city_name ?
Я попытался воспроизвести вашу проблему с ElasticSearch 6.6.2.
Я создал индекс
PUT cities
{
"mappings": {
"city": {
"dynamic": "true",
"properties": {
"id": {
"type": "long"
},
"city_name": {
"type": "text",
"fielddata": true
}
}
}
}
}
Я добавил один документ без названия города
PUT cities/city/1
{
"id": "1"
}
Когда я выполнил поиск:
GET cities/_search
{
"aggs": {
"cities": {
"terms" : { "field": "city_name"}
}
}
}
Я не получил ни одного сегмента в агрегации городов .Но когда я добавил один документ с названием города:
PUT cities/city/2
{
"id": "2",
"city_name": "London"
}
, я получил ожидаемый результат:
{
"took" : 3,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : 2,
"max_score" : 1.0,
"hits" : [
{
"_index" : "cities",
"_type" : "city",
"_id" : "2",
"_score" : 1.0,
"_source" : {
"id" : "2",
"city_name" : "london"
}
},
{
"_index" : "cities",
"_type" : "city",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"id" : "1"
}
}
]
},
"aggregations" : {
"cities" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "london",
"doc_count" : 1
}
]
}
}
}