我试图在Elasticsearch中存储一棵树.我的树在理论上可以无限长(尽管不太可能发生)并且可以相对频繁地分支.
存储它的最佳方法是什么?
我调查了this question但是它的答案在分支时性能有限.有没有什么方法可以实现文档的正确嵌套,同时仍然具有分支的灵活性,以及读取树及其节点时的整体性能?
最佳答案 我非常推荐以与Mongodb建议使用物化路径类似的方式在ES中存储树
只需将树中的每个节点存储为索引中的文档,如果您有不同类型的节点,则可以创建类型字段并按此过滤.
将文档的路径以逗号分隔的字符串存储在树中,如下所示:
路径:’,root,books,fiction’
您可以稍后使用文本搜索来搜索子树
有关详细信息,请参阅此处的文档:
https://docs.mongodb.com/manual/tutorial/model-tree-structures-with-materialized-paths/