在Elasticsearch中存储树的最佳结构?

Mat*_*zen 8 elasticsearch

我试图在Elasticsearch中存储一棵树。理论上,我的树可以无限长(尽管这不太可能发生),并且可以相对频繁地分支。

存储此内容的最佳方法是什么?

我调查了这个问题,但是分支时它的回答却有限。有什么方法可以实现文档的正确嵌套,同时仍然具有分支的灵活性以及读取树及其节点时的整体性能?

Jes*_*mez 7

我非常建议以类似于 Mongodb 建议使用物化路径的方式在 ES 中存储树

只需将树中的每个节点存储为索引内的文档,如果您有不同类型的节点,您可以创建一个类型字段并通过该字段进行过滤。

将文档在树中的路径存储为逗号分隔的字符串,如下所示:

路径:',root,books,fiction'

您可以稍后使用文本搜索在子树中进行搜索

有关更多详细信息,请参阅此处的文档:https : //docs.mongodb.com/manual/tutorial/model-tree-structures-with-materialized-paths/