2016-03-03 2 views
0

ElasticSearch поставляется с версиями https://www.elastic.co/blog/versioningКак получить все документы с версией н в упругом поиске

Может быть, я неправильно понял смысл версий здесь.

Я хочу найти все документы, которые находятся в версии 1, поэтому я могу их обновить.

Очевидный способ пройти через весь документ по одному и выбрать те, которые находятся в версии 1.

Вопрос:

Можно ли получить все документы, которые находятся в версии 1 с запросом ONE?

+1

Вы можете найти версию для всех документов путем добавления 'версии: true' в query.But поиске документов от номера версии, как представляется, не имеется. – Richa

+1

Просто знайте, что ES не хранит ** все версии ** данного документа, только последнюю версию и номер версии, которую она имеет. – Val

+0

@Val да, я просто хотел использовать версию как средство для обновления моих данных. – nafas

ответ

2

Из-за распределенной природы Elasticsearch ему необходим способ обеспечить внесение изменений в правильном порядке. Здесь _version вступает в игру. Это внутренний способ убедиться, что более старая версия документа никогда не перезаписывает более новую версию.

Вы также можете использовать _version как способ убедиться, что документ, который вы хотите удалить/обновить, не был изменен тем временем - это делается путем указания номера версии в URL-адресе; например PUT /website/blog/1?version=5 будет успешным, только если текущая _version документа, хранящегося в индексе 5.

Вы можете прочитать об этом здесь: Optimistic Concurrency Control

Чтобы ответить на ваш вопрос,

Возможно ли получить все документы, которые находятся в версии 1, с помощью ОДНОГО запроса?

No.

Смежные вопросы