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

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

存储它的最佳方法是什么?

我调查了this question但是它的答案在分支时性能有限.有没有什么方法可以实现文档的正确嵌套,同时仍然具有分支的灵活性,以及​​读取树及其节点时的整体性能?

最佳答案 我非常推荐以与Mongodb建议使用物化路径类似的方式在ES中存储树

只需将树中的每个节点存储为索引中的文档,如果您有不同类型的节点,则可以创建类型字段并按此过滤.

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

路径:’,root,books,fiction’

您可以稍后使用文本搜索来搜索子树

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

点赞