Агрегирование тегов в Elastic Search

У меня возникли некоторые проблемы, пытаясь выяснить, как работает агрегация количества документов по тегам.

Мое отображение выглядит так:

"properties" => array(
"name" => array(
"type" => "string"),
"location" => array(
"type" => "geo_point"),
"city" => array(
"type" => "string",
),
"tags" => array(
"type" => "integer"))

tags содержит массив целых чисел Я старался:

"aggs": {
"tags_count": {
"terms": {
"field": "tags"}

}

Я думаю, потому что это массив тегов, он не берет отдельно каждый тег и просматривает запрос результата и пытается объединить те теги, которые есть в результате.

Некоторые хиты будут с благодарностью!

Результат поиска:

"hits":
{
"total": 345,
"max_score": 1,
"hits":
[
{
"_index": "offers",
"_type": "offer",
"_id": "13648190",
"_score": 1,
"_source":
{
"tags":
[
"28",
"42",
"44",
"112",
"136",
"176",
"180",
"816",
"920",
"1491"],

"location":
{
"lon": "8.41450977",
"lat": "48.45690918"},

"name": "Schwarzwald - 4* Wellnesshotel Palmenwald",
}
},

Агрегация выглядит так:

"aggregations":
{
"tags_count":
{
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 3034,
"buckets":
[
{
"key": 1000,
"doc_count": 152
},
{
"key": 44,
"doc_count": 138
},
{
"key": 769,
"doc_count": 124
},
{
"key": 797,
"doc_count": 115
},
{
"key": 784,
"doc_count": 105
},
{
"key": 782,
"doc_count": 103
},
{
"key": 180,
"doc_count": 96
},
{
"key": 1038,
"doc_count": 87
},
{
"key": 999,
"doc_count": 57
},
{
"key": 42,
"doc_count": 53
}
]
}
}

Проблема в агрегации, она не включает в себя все теги, найденные в документах «теги». Весь поиск должен иметь не менее 300-400 тегов, и счет кажется отключенным.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …