如何通过 NEST c# 将列表索引到 elasticsearch
How to index List into elasticsearch via NEST c#
我需要通过 NEST 库将 List<Person>
中的很多条目放入 elasticsearch。
我可以使用下面的循环和代码一一放置:
var person = new Person
{
Id = "1",
Firstname = "Martijn",
Lastname = "Laarman"
};
var index = client.Index(person);
但似乎它运行起来真的很慢。有没有办法通过 NEST 更快地做到这一点?
看看 BulkDescriptor
对象。
然后你可以做如下操作:
private readonly ElasticClient _client; //needs to be initialized in your code
public void Index(IEnumerable<Person> documents)
{
var bulkIndexer = new BulkDescriptor();
foreach (var document in documents)
{
bulkIndexer.Index<Person>(i => i
.Document(document)
.Id(document.SearchDocumentId)
.Index(_indexName));
}
_client.Bulk(bulkIndexer);
}
函数 Index
采用您的类型的 IEnumerable。因此,当您循环遍历要索引的项目时,不要将每个对象单独添加到索引中,而是使用此函数将集合传递给,它会为您批量索引对象。
我需要通过 NEST 库将 List<Person>
中的很多条目放入 elasticsearch。
我可以使用下面的循环和代码一一放置:
var person = new Person
{
Id = "1",
Firstname = "Martijn",
Lastname = "Laarman"
};
var index = client.Index(person);
但似乎它运行起来真的很慢。有没有办法通过 NEST 更快地做到这一点?
看看 BulkDescriptor
对象。
然后你可以做如下操作:
private readonly ElasticClient _client; //needs to be initialized in your code
public void Index(IEnumerable<Person> documents)
{
var bulkIndexer = new BulkDescriptor();
foreach (var document in documents)
{
bulkIndexer.Index<Person>(i => i
.Document(document)
.Id(document.SearchDocumentId)
.Index(_indexName));
}
_client.Bulk(bulkIndexer);
}
函数 Index
采用您的类型的 IEnumerable。因此,当您循环遍历要索引的项目时,不要将每个对象单独添加到索引中,而是使用此函数将集合传递给,它会为您批量索引对象。