Я пытаюсь написать запрос с упругим поиском, в котором должны быть перечислены все различные значения, содержащиеся в различных полях документа. Когда поля имеют тип Keyword, термин совокупный запрос работает нормально, и я могу видеть значения с их количеством перечисленных в ведрах. Но я не получаю никакого результата, когда я запрашиваю различные типы цитрусовых, отображение как показано ниже:
{
"vegetables":{
"type": "text",
"fields": {
"keyword" : {
"type" : "keyword",
"ignore_above": 256
}
}
},
"fruits": {
"properties": {
"citrus": {
"properties": {
"orange": {
"type": "long"
},
"lemon": {
"type": "long"
},
"kiwi": {
"type": "long"
}
}
}
}
}
}
и ожидаемый результат:
"aggregations": {
"distinct_citrusy_fruits"{
"buckets" : [
{
"key":"oranges",
"doc_count": 23
},
{
"key":"lemon",
"doc_count": 21
},
{
"key":"kiwi",
"doc_count": 23
}
]
}
}
когда я делаю агрегацию термина для поля "овощи" (это тип ключевого слова), я могу получить сегменты, как указано выше.
Как получить четкие подсчеты в этом случае? Кроме того, у меня нет возможности изменить формат документа.
РЕДАКТИРОВАТЬ - единственный обходной путь, который я нашел до сих пор, - это вызвать API-интерфейс сопоставлений, а затем проанализировать вложенный JSON в моем коде, чтобы получить значения ключей. Если есть какое-либо лучшее решение, пожалуйста, добавьте ответ здесь.