Имея это поле в моем отображенииElasticSearch 5,1 Fielddata отключен в текстовом поле по умолчанию [ОШИБКА: попытка использовать агрегацию на поле]
"answer": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
я пытаюсь выполнить эту агрегацию
"aggs": {
"answer": {
"terms": {
"field": "answer"
}
},
но я получаю эту ошибку
"type": "illegal_argument_exception",
"reason": "Fielddata is disabled on text fields by default. Set fielddata=true on [answer] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory."
Должен ли я изменить свое сопоставление или я использую неправильную агрегацию? (Просто обновлен с версии 2.x до 5.1)
Я не уверен, что тип ['ключевое слово] (https://www.elastic.co/guide/en/elasticsearch/reference/current/keyword.html) фактически принимает любую настройку 'fielddata', как это делает тип' text'. – Val
В соответствии с исключением ('Set fielddata = true on [answer]'), я думал, что проблема связана с ответом '' 'в предоставленном сопоставлении. – Kulasangar
Это потому, что он агрегировался на 'answer', но он лучше агрегировал на' answer.keyword', так как у него есть это поле. – Val