首页 > 解决方案 > 执行 indexClient.Documents.Index(batch) 时 index 方法失败

问题描述

我将 1000 个文档添加到 IndexBatch 并调用 index() 方法,如下所示

var batch = IndexBatch.New(actions);

indexClient.Documents.Index(batch);

我将这段代码保持在一个循环中,我需要将大约 5000 万个文档上传到 Azure 搜索。在循环中执行大约 15 到 20 次(15k 到 20k 文档)后,它失败并抛出异常,如下所示

“请求无效。详细信息:操作:在请求中未找到索引操作。请在您的请求中包含 1 到 32000 个索引操作。”

为什么我随机得到这个异常。

您能否建议更好的方法来处理以下情况

  1. 如何在尝试加载另一批之前确保前一批文档被索引(因为我在循环中运行这些语句至少 50K 次)
  2. 由于服务负载而导致的任何错误。

标签: azure-cognitive-searchazure-search-.net-sdk

解决方案


是否可以在此代码中添加 try/catch,以便您可以验证批次中确实有项目?在 catch 中可能会添加一个断点来调查批处理中的内容,看看这是否有助于清除可能是什么问题?


推荐阅读