Я пытаюсь использовать метод 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», как и ожидалось, но мой индекс пуст, когда я проверяю его.
Если я не выполню первый шаг по созданию индекса, то при массовой загрузке будет создан индекс с сопоставлениями по умолчанию, но я не смогу использовать его без сопоставлений.