1

我正在 c# 客户端上测试该FindFailedActionsToRetry功能以进行 azure 搜索,但没有得到预期的结果。

在我的函数中,我尝试对批处理进行索引,并且我有一个处理 IndexBatchException 的 try-catch。在我做的里面:

var retryBatch = e.FindFailedActionsToRetry(batch, id => id["Identifier"].ToString());

我第一次索引时得到:( 999 out of the 1000 documents failed to index这是预期的)。

然后我尝试再次索引批次,但没有得到相同的indexbatchexception抛出(因为我故意设置merge为原始 1k 文档的操作),我得到另一个异常:

The request is invalid. Details: actions : No indexing actions found in the request. Please include between 1 and 1000 indexing actions in your request.

任何想法为什么该FindFailedActionsToRetry函数没有返回正确的结果?或者我做错了什么?

编辑

为了显示更多上下文,当我展开retrybatch我创建的包含一个IndexBatch对象的对象时,我可以看到Actions. 然后我进一步展开,单击结果视图,我得到:Enumeration yielded no results

我第一次发送的原始批次确实有结果。事实上,我可以看到:Action,document。行动、文件等

为什么我没有看到任何结果?

4

1 回答 1

2

您正在以一种非暂时的方式引发索引失败,因此不可重试。FindFailedActionsToRetry足够聪明,可以检测到这一点。看看代码ShouldRetry中的方法。

于 2017-08-18T21:18:34.433 回答