Может ли шаблон индекса эластичного поиска определить тип по умолчанию для полей и разрешить переопределение только определенных полей? - PullRequest
2 голосов
/ 15 апреля 2019

Я сопоставляю все поля в пропущенных документах, но иногда обнаружение типа динамического сопоставления полей эластичного поиска выбирает очень ограничительный тип (например, long) для поля, содержащего простой текст. По-видимому, это основано на исходном документе, полученном ES, содержащем поле. Например:

Документ 1:

{
  "a": 1,
  "b": "foo",
  "c": {
    "nested": 5.5
  }
}

Документ 2:

{
  "a": "plain text",
  "b": "bar",
  "c": {
    "nested": "plain text again"
  }
}

Могу ли я определить шаблон индекса так, чтобы все значения были проиндексированы как text по умолчанию, и индексироваться как другие типы, только если я явно хочу это сделать?

1 Ответ

1 голос
/ 15 апреля 2019

Elasticsearch позволяет настроить правила динамического отображения. Например, вы можете определить правило, которое сопоставляет long с text:

{
  "mappings": {
    "dynamic_templates": [
      {
        "long_to_text": {
          "match_mapping_type": "long",
          "mapping": {
            "type": "text"
          }
        }
      }
    ]
}

Более подробную информацию можно найти в документации: https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-templates.html

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