Разница в методах индексации нескольких документов с помощью Nest

Используя версию Nest 1.1.2, кажется, что есть как минимум 3 способа индексации нескольких документов:

ИндексМного

client.IndexMany(documents, "index_name", "type_name");

Массово с параметром BulkRequest

client.Bulk(new BulkRequest(){
        Index = "index_name",
        Type = "type_name",
        Operations = documents_as_list_of_BulkIndexOperation
    });

Навалом с селектором

client.Bulk(s => s.IndexMany(documents,
                             (bulkDescriptor, record) =>
                               bulkDescriptor.Index("index_name").Type("type_name)));

Если я хочу выполнить одну и ту же операцию для всех документов (т. е. я не хочу использовать возможности Bulk API для выполнения разных операций для каждого документа, как подробно описано в документах), есть ли какое-либо преимущество в вызове client.Bulk по сравнению с client.IndexMany?


person Alasdair Ross    schedule 07.10.2014    source источник


Ответы (1)


IndexMany() использует BulkIndexDescriptor в своей реализации, поэтому, если вы используете только Bulk() для индексации, то они функционально эквивалентны. IndexMany() — это просто сокращенная альтернатива использованию Bulk, просто добавленная для удобства.

person Greg Marzouka    schedule 07.10.2014