掃描ElasticSearch索引時,不可能根據documentation應用任何排序。 但是在這個過程中,是否有任何關於結果順序的定義?如果是,是否可以預測?掃描/滾動彈性搜索索引時是否有可預測的順序?
背景信息:
我需要做5M的文件操作regulary的1.000文檔每批取約1分鐘進行處理。由於我無法確定每次運行過程都會完成,因此我希望能夠在上次中斷它的工作時繼續工作,例如,如果滾動結果按ID
排序(我知道,事實並非如此),我會跟蹤我的代碼中最後一次處理的ID
,並且在下一次運行時不再處理任何帶有ID <= lastProcessedId
的文檔,以確保每個文檔定期處理。
順便說一句:通過「處理文檔」我並不是要寫額外的信息回索引,而是更新我的數據庫中的其他東西。將時間戳寫入索引文檔對我來說無濟於事,因爲進程被中斷的原因之一可能是索引被替換爲新索引(從頭開始重新構建)。 寫處理過的時間戳到數據庫對我來說也不是一個理想的選項,因爲迭代性能是我使用索引在第一個位置滾動的原因....
感謝您對此的輸入...我可能會恢復到遍歷數據庫,因爲迭代索引(超快速迭代)的主要好處將不再適用於進行範圍查詢.... – peterp 2013-03-25 16:43:53