агрегация эластичного поиска с использованием скрипта для преобразования агрегируемого значения поля
В настоящее время у меня есть что-то вроде:
"aggs": { "group_by_myfield": { "terms": { "field": "myfield" } } }
Однако значение для myfield - «альфа 1.0», «альфа 2.0», «бета 1.0». Теперь я хочу агрегировать только по значениям «альфа», «бета». Как я могу это сделать? Я старался:
"aggs": { "group_by_myfield": { "terms": { "field": "myfield" "script": "_value.split()[0]" } } }
Но я думаю, что нет разделенной функциональности. Любые предложения приветствуются!
Я нашел похожий вопросВот что остается без ответа.
РЕДАКТИРОВАТЬ: удалось сделать это по ссылке выше. следующий запрос делает работу.
GET _search { "size": 0, "aggs": { "group_by_myfield": { "terms": { "field": "myfield", "script": "_value.replaceAll('\\\\s+.*','')" } } } }