Я создаю Сводку условий , но хочу вернуть несколько полей.Я хочу, чтобы пользователь выбирал группы через "slug" (мое имя), но отображал фактическое "имя" (My Name).
В данный момент я делаю TopHits SubAggregation, как это:
"organisation": {
"aggregations": {
"label": {
"top_hits": {
"_source": {
"includes": [
"organisations.name"
]
},
"size": 1
}
}
},
"terms": {
"field": "organisations.slug",
"min_doc_count": 0,
"size": 20
}
}
Это дает желаемый результат, когда весь мой запрос фактически находит некоторые сегменты / результаты.
Вы видите, я установил min_doc_count
в 0
, чтовернет сегменты с количеством документов, равным 0. Проблема, с которой я здесь сталкиваюсь, заключается в том, что мой ответ TopHits пуст, что приводит к невозможности предоставить правильное имя клиенту.
Пример ответа:
"organisation": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "my-name",
"doc_count": 27,
"label": {
"hits": {
"total": 27,
"max_score": 1,
"hits": [
{
"_index": "users",
"_type": "doc",
"_id": "4475",
"_score": 1,
"_source": {
"organisations": [
{
"name": "My name"
}]
}
}]
}
}
},
{
"key": "my-name-2",
"doc_count": 0,
"label": {
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
},
.....
Кто-нибудь достиг этого желаемого результата?Я чувствую, что TopHits не поможет мне здесь.Всегда следует выбирать имя.
То, что я тоже пробовал:
- Работа с подгруппами терминов.(тот же результат)
- Работа с существенными терминами субагрегации.(тот же результат)
Я думаю, что это может быть решением, но кажется грязным:
- Индексируйте новое поле с помощью "
organisations.slug
___ organisations.name
" и работайтемагия через это. - Ручной запрос к полю имени, где счетчик равен 0 (читай TopHits пусто)
С уважением, Заранее спасибо