Установка значений doc_value для поля _id вasticSearch - PullRequest
0 голосов
/ 19 ноября 2018

Я хочу установить значения doc_values ​​для поля _id в упругом поиске. Поскольку я хочу выполнить сортировку на основе _id

, нажав ниже api для обновления сопоставления, я получаю ошибку

PUT my_index/my_type/_mapping
{
    "properties": {
      "_id": {
        "type": "keyword",
        "doc_values": true
      }
    }  
}

причина: сопоставлениеопределение для [_id] имеет неподдерживаемые параметры: [doc_value: true]

1 Ответ

0 голосов
/ 19 ноября 2018

Это «doc_values», вы используете неверный параметр.https://www.elastic.co/guide/en/elasticsearch/reference/current/doc-values.html

Упругая сортировка препятствует сортировке по полю _id.См. this

Значение поля _id также доступно в агрегатах или для сортировки, но это не рекомендуется, так как требует загрузки большого объема данных в память.Если требуется сортировка или агрегирование в поле _id, рекомендуется продублировать содержимое поля _id в другом поле, для которого включены значения doc_value.

EDIT

Создайте сценарий для вашего шаблона индекса с именем для.ex id типа string и сценария doc['_id'].value.См. эту ссылку для получения дополнительной информации о скриптовых полях.Это создаст новое поле id и скопирует значение поля _id для каждого документа, проиндексированного в ваших индексах, соответствующих вашему шаблону индекса.Затем вы можете выполнить сортировку по полю id.

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