gpt4 book ai didi

c# - Elasticsearch C# NEST IndexMany child

转载 作者:太空狗 更新时间:2023-10-30 01:01:25 26 4
gpt4 key购买 nike

我在使用 NEST 中的批量方法索引子记录到 Elasticsearch 中时遇到问题。

我正在使用 ElasticSearch 2.3.5 和 NEST 2.4.4

我已经映射了一个索引:

    myindex
{
"mappings": {
"elasticparent": {},
"elasticchild": {
"_parent": {
"type": elasticparent
}
}
}
}

我已经使用 IndexMany 方法为父对象编制了索引:

    client.IndexMany<elasticparent>(batch, "myindex");

这一切都很好。

我现在想使用 IndexMany 为 child 编制索引。到目前为止,这是我尝试过的:

     client.Bulk(s => s.IndexMany(IenumerableOfChild,
(bulkDescriptor, record) =>
bulkDescriptor.Index("myindex").Type("elasticchild").Parent(record.Id)));

child 和 parent 共享相同的 Id 整数。

我没有收到错误,但子项永远不会被索引,文档也永远不会添加到总索引数中。

将它们单独编入索引:

    foreach (var child in IenumerableOfChild
{

client.Index(child, descriptor => descriptor
.Parent(child.Id.ToString()).Index("myindex"));
}

我不想单独索引质量数。我想使用 IndexMany 来批量索引子记录。有人可以指出我做错了什么吗?

最佳答案

经过进一步调查,弹性服务器返回超时。通过一次将请求批处理到 1000 个项目,它现在可以正常工作了!

    foreach (IEnumerable<object> batch in objects.Batch(1000))
{
var indexResponse = client.Bulk(s => s.IndexMany(batch,
(bulkDescriptor, record) =>
bulkDescriptor.Index("myindex").Parent(record.Id.ToString()).Document(record).Type("elasticchild").Id(record.Id.ToString())));

Console.WriteLine(indexResponse);
}

关于c# - Elasticsearch C# NEST IndexMany child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39234432/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com