BulkAll работает только с отображением по умолчанию - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь использовать метод BulkAll () для добавления документов в мой индекс.

Индекс создается с использованием сопоставления, которое работает с использованием IndexMany ():

client.CreateIndex(indexName, c => c
                .Settings(s => s
                    .NumberOfShards(shardCount).NumberOfReplicas(replicaCount))
                .Mappings(ms => ms
                    .Map<MyDocument>(m => m.AutoMap())
            ));

Iзатем попытайтесь использовать BulkAll ():

Console.WriteLine("Indexing documents into elasticsearch...");
var waitHandle = new CountdownEvent(1);

var bulkAll = client.BulkAll(docsToUpload, b => b
    .Index(indexName)
    .BackOffRetries(2)
    .BackOffTime("30s")
    .RefreshOnCompleted(true)
    .MaxDegreeOfParallelism(4)
    .Size(100)
);

bulkAll.Subscribe(new BulkAllObserver(
    onNext: (b) => { Console.Write("."); },
    onError: (e) => { throw e; },
    onCompleted: () => waitHandle.Signal()
));

waitHandle.Wait();
Console.WriteLine("Done.");

. Это приводит к выходу строки «.....», за которой следует «Done», как и ожидалось, но мой индекс пуст, когда я проверяю его.

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

...