elasticsearch - 带有 NEST 的 Elasticsearch BulkAll:超出最大容量
问题描述
我正在使用以下代码对文档进行批量索引。它适用于除我的产品模型之外的所有内容,但仅当我尝试索引多个文档时。如果我只做 1 个文件,它工作正常。如果我做10,它会失败。我的 Product 模型不是很复杂,但它确实有一些带有无限自引用循环的嵌套文档,但我确实添加了 ReferenceLoopHandling.Ignore 来处理它。
public bool BulkIndex<T>(IEnumerable<T> items) where T : class
{
var waitHandle = new CountdownEvent(1);
var bulkAll = _client.BulkAll(items, b => b
.BackOffRetries(2)
.BackOffTime(TimeSpan.FromSeconds(5))
.RefreshOnCompleted(true)
.MaxDegreeOfParallelism(4)
.Size(100)
.Index(typeof(T).Name.ToLower())
);
bulkAll.Subscribe(new BulkAllObserver(
onNext: (b) => { Console.Write("."); },
onError: (e) => { throw e; },
onCompleted: () => waitHandle.Signal()
));
waitHandle.Wait();
return true;
}
new JsonNetSerializer(builtInSerializer, connectionSettings, () => new JsonSerializerSettings
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
}))
解决方案
推荐阅读
- java - Maven依赖声明触发编译过程的变化?
- sql - SQL Server 2012 中的计算
- google-apps-script - 在 Google 表格中使用应用程序脚本锁定单元格,而不是数据验证或隐藏所有提示
- pandas - pandas 聚合包括所有组
- c# - 在基于 Swagger 和 ReDoc 的 OpenAPI 文档中包含枚举的 XML 注释
- javascript - 编码新手,更新网站故障版权年份的代码?
- java - 如何(取消)编组子类中根元素的值
- android - TextView 的 style.xml 中的文本对齐值
- microphone - 应用程序在 MacOS 10.14 Mojave 中未请求访问麦克风的权限
- slack - 我可以为传入的 webhook 使用自定义 JSON 格式吗