2017-06-16 80 views
1

我想了解Azure搜索提供了什麼一致性保證。Azure在發佈到索引時搜索數據一致性

方案: 比方說,我張貼的文件順序天​​青搜索REST API:

  1. DOC1
  2. DOC2
  3. doc3的

問題

  1. 我發出一個查詢和doc3的返回。是否暗示doc1doc2也存在於索引中?例如,我是否應該關心數據複製尚未完成等?
  2. 如果POST請求返回,是否100%保證已發佈的文檔可供搜索,因此將立即被任何查詢索引的客戶端發現?
  3. 與一致性相關的任何行爲是否取決於所使用的層次?

回答

2

1)Azure Search保證最終所有文檔都顯示出來,但不是讀者會看到它們按順序顯示(沒有單調讀取)。

2)否。如果您從索引請求中看到HTTP狀態200,這意味着數據是持久的(我們不會丟失它),但不是它可以搜索。根據負載可能需要幾秒鐘才能搜索。

3)所有的層次都揭示了最終的一致性模型。由於數據分區方式的不同,典型的時序/層次之間可能存在細微的差異,但這些差異是不應該依賴的,因爲它們是可變的。

+0

謝謝!這非常有用。 – grg

+1

我正在尋找一種方法來檢測最終一致性是否達到,以便客戶可以100%確定他們將找到他們發佈的數據。 你有什麼建議如何實現? 如您在2)中提到的那樣,我可以在保存後添加幾秒鐘的延遲,但是有沒有關於數據變得可搜索需要多長時間的SLA? – grg

+0

可能需要幾秒鐘才能根據負載進行搜索。問題,爲什麼你需要在數據可被搜索的時候提供100%的保證 –