Попробуйте проиндексировать поля, которые отсутствуют в определенном шаблоне Elasticsearch - PullRequest
3 голосов
/ 29 марта 2020

Я не смог найти никакой документации по следующей проблеме:

Мы создаем файл шаблона для всех полей, которые мы индексируем в Elasticsearch. Вопрос касается полей, которые не определены в шаблоне:

  1. Какое значение Elasti c по умолчанию они индексируют?
  2. Каковы ограничения (если есть any) для индексации этих полей?
  3. Я пытался проиндексировать поле, значением которого является список JSON, и я получил исключение: «Не удается получить текст на START_OBJECT в 1: 311» что это значит?

1 Ответ

1 голос
/ 29 марта 2020
  1. строковые поля индексируются с помощью текстового поля со стандартным анализатором и подполя .keyword с типом ключевого слова, с параметром ignore_above, установленным в 256. Поле даты пытаются проанализировать в формате ISO 8601 - этот yyyy-MM-dd HH:mm:ss. long - значение по умолчанию для чисел и double для десятичных чисел. Вы можете изменить это поведение по умолчанию с помощью dynamici c templates . Например, если мы хотим отобразить все целочисленные поля как короткие вместо длинных, а все строковые поля - как ключевые слова, мы можем использовать следующий шаблон:

    PUT my_index {"mappings": {"dynamic_templates": [ {"integer": {"match_mapping_type": "long", "mapping": {"type": "short"}}}, {"strings": {"match_mapping_type": "string", "mapping": {" тип ":" ключевое слово "," ignore_above ": 256}}}]}}

  2. Нет ограничений на поля индекса, не определенные в шаблонах

  3. эта ошибка означает, что в json есть ошибка с синтаксисом es, не могли бы вы поделиться этим json?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...