Elasticsearch выдает ошибку с двумя сопоставлениями в шаблоне индекса - PullRequest
1 голос
/ 22 марта 2019

Если я определю файл шаблона индекса template.json следующим образом:

{
    "template": "types",
    "mappings": {
        "type1": {
            "properties": {
                "title": {
                    "type": "text"
                }
            }
        },
        "type2": {
            "properties": {
                "title": {
                    "type": "keyword"
                }
            }
        }
    }
}

и попытаюсь опубликовать его:

curl -XPUT http://localhost:9200/_template/types -d@template.json

Я получу этот ответ:

{
  "error" : {
    "root_cause" : [
      {
        "type" : "illegal_argument_exception",
        "reason" : "mapper [title] cannot be changed from type [keyword] to [text]"
      }
    ],
    "type" : "illegal_argument_exception",
    "reason" : "mapper [title] cannot be changed from type [keyword] to [text]"
  },
  "status" : 400
}

Я ожидаю, что смогу определить несколько сопоставлений в шаблоне с разными полями разных типов.

Что я делаю или предполагаю неправильно?

Яиспользуя Elasticsearch 5.6.

1 Ответ

3 голосов
/ 22 марта 2019

Если поля имеют одинаковые имена, они должны быть одного типа, даже если вы используете версию 5.6, которая является последней, разрешающей использование нескольких типов сопоставления в одном и том же индексе.

Если поле title в типе type1 отображается как text, поле title в типе type2 также должно отображаться как text.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...