2017-08-18 57 views
0

我在c#客戶端上測試FindFailedActionsToRetry函數進行天藍色搜索,並且我沒有得到預期的結果。Azure搜索FindFailedActionsToRetry返回空操作?

在我的函數中,我嘗試索引批處理,並且我有一個處理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

原始批次我發送的第一次的確有有分享。事實上,我可以看到:行動,文件。行動,文件等

爲什麼我沒有看到任何結果?

+0

您使用的是哪個版本的SDK?在調用'FindFailedActionsToRetry'時,'id'是什麼類型? –

+0

我正在使用3.0.3。我開始使用findfailedactionstoretry沒有類型,所以我只是說「標識符」,這是我在天藍色搜索的關鍵領域。這不起作用,所以我使用了Typed版本,這也沒有奏效。 id是一個文檔 –

回答

1

您正在挑動索引失敗的方式不是瞬態的,因此無法回溯。 FindFailedActionsToRetry足夠聰明,可以檢測到這一點。看看ShouldRetry方法in the code

+0

Wao,花了我很長時間才發現。非常感謝。正如你所提到的那樣,我得到了404這是不可回溯的。謝謝您的幫助! –

+0

啊,很抱歉提出這種方法。我忘記了'FindFailedActionsToRetry'考慮了重試能力。 –