Как установить _id в elasticsearch 2.0

Поскольку конфигурация path в поле _id определенного сопоставления устарела (как указано в документации здесь),

Как установить поле _id для определенного документа в elasticsearch 2.0?

(В моем конкретном случае я хочу индексировать все документы со своим собственным идентификатором. Я знаю, что все они уникальны)


person gillyb    schedule 01.09.2015    source источник


Ответы (1)


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

Таким образом, все текущие способы индексации ваших документов по-прежнему действительны, если вы явно указываете идентификатор:

curl -XPUT localhost:9200/index/type/your_id -d '{"field1": "value1"}'
                                        ^
                                        |
                                 your id goes here

или в массовом запросе

curl -XPOST localhost:9200/_bulk -d '
{"index": {"_index": "index", "_type": "type", "_id": "your_id"}}
{"field1": "value1"}                                     ^
'                                                        |
                                                 your id goes here
person Val    schedule 01.09.2015
comment
Проклятие! Это так тривиально, я не знаю, почему я не подумал попробовать это. :/ (И я все еще думаю, что они должны упомянуть об этом в своей документации) - person gillyb; 01.09.2015
comment
Это каким-то образом кратко упоминается в этом сообщении в блоге, объявляющем о предстоящих изменениях в ES 2.0. Хотя я признаю, что не помешало бы, если бы док упомянул об этом официально. - person Val; 01.09.2015
comment
Он задокументирован с Index API, самое первое. В следующем примере документ JSON вставляется в индекс Twitter под типом tweet с идентификатором 1. Только позже на странице представлен метод автоматического создания идентификатора с использованием HTTP POST. РЕДАКТИРОВАТЬ: ограниченная поддержка уценки в комментариях. - person GlenRSmith; 25.01.2016