Я пытаюсь добавить несколько эластичных документов json, которые имеют глубоко вложенную структуру json.
Я бы хотел обработать некоторые из этих вложенных полей как обычные неиндексированные text
вместо json или , пропустить , или это невозможно.
например, у меня есть event
документы, подобные этому:
{
"cluster": "production1",
"header": {
"os": "ios",
"experiments": {
"e1": {
"field1": "value1",
"field2": "value2"
"array": ["id0"]
},
"e2": {
"field3" : "value3",
"array": ["id1", "id2", "id3"]
}
}
},
}
Я хочу, чтобы все в поле header.experiments
обрабатывалось как один простой текст.
Я пробовал это отображение, но оно не работает для меня, потому что поле experiments
является объектом, а не строкой: error: can't get text on a start_object
.
"mappings": {
"event": {
"properties": {
"cluster": {
"type": "keyword",
"index": true
},
"header": {
"os": {
"type": "keyword",
"index": true
},
"experiments": {
"type": "text", // This does not work
"index": false
}
}
}
}
}
Как настроить ElasticSearch для обработки подполя как простого текста?