По сути, я хочу, чтобы мое отображение было как можно более бессхемичным, но позволяло бы использовать вложенные типы и возможность хранить данные, которые могут иметь разные типы:
Когда я пытаюсь добавить документ, в котором некоторые поляимеют разные типы значений, я получаю сообщение об ошибке:
"type": "invalid_argument_exception", "reason": "mapper [data.customData.value] другого типа, current_type [long], merged_type[text] "
Эту проблему легко решить, сопоставив значение поля с текстом (или создайте его динамически, сначала вставив документ только с текстом).Тем не менее, я хотел бы избежать схемы.Возможно, все поля, вложенные в customData, будут установлены в текст?Как я могу это сделать?
У меня была проблема ранее, но потом она начала работать после того, как случайно удалось получить динамическое отображение, которое работало (поскольку все рассматривалось как текст. Позже я узнал об этой проблеме, так как мне нужно было изменить отображениечтобы разрешить использование вложенных типов.
Документы с данными такого типа затрудняют хранение:
"customData": [
{
"value": "some_text",
"key": "some_text"
},
{
"value": 0,
"key": "some_text"
}
]
Часть работающего отображения:
{
"my_index": {
"aliases": {},
"mappings": {
"_doc": {
"properties": {
"data": {
"properties": {
"customData": {
"properties": {
"key": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"value": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
},
"some_list": {
"type": "nested",
"properties": {
"some_field": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}
}
}
В сущности, я хочу, чтобы отображение было как можно более бессхемичным, но позволяло бы использовать вложенные типы и иметь возможность хранить данные, которые могут иметь различные типы:
{
"mappings": {
"_doc": {
"properties": {
"data": {
"type": "object"
},
"somee_list": {
"type": "nested"
}
}
}
}
}
Так что будет лучшим подходом для этого?это проблема?