我有一个文档在弹性搜索中被索引的场景,我需要在 mongo 中检索匹配的文档以及按时间戳排序的前后文档。这个想法是检索文档的上下文以及原始文档。
如果我使用顺序_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,因为它是连续的,我可以创建一个 mongo 查询来拉取 id - 2 和 id + 2 之间的范围,在本例中为 2 - 6。这行得通好吧,只要我不删除文档。当我删除一个文档时,我将不得不重新索引整个系列以消除差距。我正在寻找一种实现相同结果的方法,但也能够删除文档而无需更新所有文档。
我愿意使用其他技术来实现这一点,我不一定与 mongodb 绑定。