2016-08-21 46 views
0

我們正在使用Azure搜索查看各種情況。我們經常需要用用戶所做的更改來更新單個文檔。我們需要儘快在索引中看到這些變化,以便儘可能縮短陳舊時間。Azure搜索更新單個文檔

什麼是處理這個問題的最佳策略。我們知道批量更新是要走的路,但我們需要更直接地反映這些更改。

更新文檔後,索引需要多長時間來反映此更改。

非常感謝

回答

2

如果更新不是很頻繁,你可以簡單地立即更新Azure的搜索文件(即採用大小爲1批)。另一方面,如果更新非常頻繁,並且您發現單文檔批處理的失敗率很高,則需要構建某種「收集器」機制來批量更新。我的建議是首先做簡單的事情:嘗試單文檔批處理,並根據需要添加批處理邏輯。

更新或新建索引的文檔會在短暫延遲後反映到搜索結果中,通常範圍從單毫秒到1至2秒。延遲取決於服務拓撲和索引負載。

+0

Shvets非常感謝您的及時響應。你提到了「高失敗率」。是更新失敗?這可能會發生一個文檔更新後不會更新。是否有推薦的錯誤處理示例,我們可以看看。 – user2981411

+0

正確,我指的是您調用Azure搜索來索引/更新文檔的失敗。如果索引操作返回成功,則所有文檔將被(最終)更新。如果它返回503 HTTP狀態,請以退避方式重試。如果它返回207狀態,則有些但不是全部文件被索引;響應會告訴您哪些文檔失敗,只重試那些文檔。如果您正在使用我們的.NET SDK,那麼很多這些細節都會被放到SDK中。 –

+0

非常感謝。這非常有幫助。我們正在使用SDK - 這是否意味着這些故障場景由SDK自動處理。即重試以及哪些文件可以做到這一點,如果失敗發生? – user2981411

相關問題