Я пытаюсь индексировать некоторые вложенные документы в сопоставление Elasticsearch (v2.3.1), которое выглядит следующим образом (на основе этого примера из документации):
PUT /my_index
{
"mappings": {
"blogpost": {
"properties": {
"title": { "type": "string" },
"comments": {
"type": "nested",
"properties": {
"name": { "type": "string" },
"comment": { "type": "string" }
}
}
}
}
}
}
Однако я не понимаю, как выглядят мои документы JSON, чтобы вписаться в это сопоставление. Я пробовал с помощью
PUT /my_index/some_type/1
{
"title": "some_title",
"comments": {
"name": "some_name",
"comment": "some_comment"
}
}
а также с
PUT /my_index_some_type/1
{
"title": "some_title",
"comments": [
{
"name": "some_name",
"comment": "some_comment"
}
]
}
которые приводят к
{
"error":
{
"root_cause":
[
{
"type": "remote_transport_exception",
"reason": "[Caiman][172.18.0.4:9300][indices:data/write/index[p]]"
}
],
"type": "illegal_argument_exception",
"reason": "object mapping [comments] can't be changed from nested to non-nested"
},
"status": 400
}
Каков правильный формат для индексирования вложенных документов? Любые рабочие примеры очень ценятся, большинство примеров здесь на SO или на других страницах концентрируются на вложенных запросах, а не на том, как документы были проиндексированы раньше.