Как проиндексировать список документов с идентификатором do c в ElasticSearch NEST 7.x - PullRequest
0 голосов
/ 28 января 2020

Я индексирую элемент списка с помощью этого кода:

foreach (var menu in mappedCollection)
        {
            var response = await client.IndexAsync(menu, i => i.Id(menu.OptomasToolId));
        }

Как сделать IndexMany или любой другой эквивалентный вызов, чтобы я мог индексировать многие элементы в одном кадре с их идентификаторами.

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Это сработало так:

 BulkAllObservable<MenuForElasticSearch> bulk = client.BulkAll(mappedCollection, b => b
          .BufferToBulk((descriptor, list) =>
          {
              foreach (var item in list)
              {
                  descriptor.Index<MenuForElasticSearch>(bi => bi
                      .Index(index)
                      .Id(item.OptomasToolId)
                      .Document(item)
                  );
              }
          }));
         bulk.Subscribe(new BulkAllObserver(
             onError: (e) => {
                 // TO DO;
             },
             onCompleted: () => { 
                 // TO DO;
             }
         ));
0 голосов
/ 28 января 2020

Вы можете использовать API-интерфейс эластичного поиска низкого уровня. net для массовой индексации многих документов с указанием индекса и идентификатора.

см .: https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/elasticsearch-net-getting-started.html#_bulk_indexing

...