マッピングにこのフィールドがある
"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に更新されました)
次のように、keyword
サブフィールドで集計する必要があります。
"aggs": {
"answer": {
"terms": {
"field": "answer.keyword"
}
},
うまくいきます。
集計では、答えにキーワードを追加するだけです。テキストフィールドの場合、キーワードを追加する必要があります。 "フィールド": "answer.keyword"
@Valの回答に加えて、マッピング自体の間にfielddata
をtrueに設定することもできます。
"answer": {
"type": "text",
"fielddata": true, <-- add this line
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},