我已經有了一個場景,其中的文檔在彈性搜索中被編入索引,並且我需要檢索mongo中的匹配文檔以及按照時間戳排序的前面和後面的文檔。這個想法是與原始文檔一起檢索文檔的上下文。基於_id獲取順序文檔
如果我使用順序的_id,我現在能夠成功完成此操作。作爲一個例子,使用下面的數據:
[
{_id: 1, value: 'Example One' },
{_id: 2, value: 'Example Two' },
{_id: 3, value: 'Example Three' },
{_id: 4, value: 'Example Four' },
{_id: 5, value: 'Example Five' },
{_id: 6, value: 'Example Six' },
...
]
如果我搜索在ES「四」,我回來的4文檔_id,因爲它是連續的,我可以創造一個蒙戈查詢拉ID之間的範圍 - 2和id + 2,在這種情況下是2 - 6.只要我不刪除文檔,這種方式效果很好。當我刪除一個文檔時,我將不得不重新編制整個系列的索引以消除差距。我正在尋找一種達到相同結果的方式,同時也能夠刪除文件而無需更新所有文件。
我很樂意使用其他技術來實現這一點,我不一定與mongodb綁定。
使用RDBMS時還有其他方法可以解決這個問題。例如,使用SQL Server,我可以使用帶有ROW_NUMBER的CTE。我可能能夠使用地圖縮小功能獲得我正在尋找的內容。我得看看那個。 –