2015-05-03 6 views
1

Я пытаюсь проиндексировать документ, если он еще не существует в elasticsearch. Я использую BulkProcessor при индексировании моих документов и использовании действия Requests.add. Иногда у меня будет тот же самый идентификатор, не добавляется ли он автоматически, но обновляется?Индекс, если он не существует, используя массовый процессор в elasticsearch

P.S. Обновление не является требованием, оно может оставаться как есть.

P.S.2 Я пытаюсь интегрировать прошлые твиты пользователя в поток пользователей elasticsearch-twitter-river.

ответ

1

Если вы указали документ с тем же идентификатором документа, он сделает обновление. В противном случае он добавит новый документ.

Другими словами, если вы PUT a doc до {index}/{type}/{id}, то он всегда будет обновлять (перезаписывать) документ этим идентификатором. Если вы POST a doc до {index}/{type}, тогда, как правило, Elasticsearch создаст новый документ для каждого вашего POST. То есть, если вы не mapped a document field to the _id field in mappings.

Похоже, что Twitter River uses the PUT method with explicitly specifying the id поэтому твиты с одинаковым идентификатором, вероятно, будут перезаписаны.