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

时间:2016-10-03 21:03:49

标签: elasticsearch

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

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

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

1 个答案:

答案 0 :(得分:2)

我非常推荐以与Mongodb建议使用物化路径

类似的方式在ES中存储树

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

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

路径:',root,books,fiction'

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

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