【问题标题】:How to make relationship in elasticsearch?如何在elasticsearch中建立关系?
【发布时间】:2018-09-01 22:30:53
【问题描述】:

我是弹性搜索的新手,我想知道如何在弹性搜索中存储关系数据。

例如:

{
 "Teacher name": "tom", 
 "Students": [{"name":"John"}, {"name":"raj"}....]
},

{
 "Teacher name": "joe", 
 "Students": [{"name":"raj"}, {"name":"jane"}....]
}

这是我的模型数据,是否可以将学生存储在数组字段中。 或者任何更好的方法来做到这一点。

谢谢。

【问题讨论】:

标签: elasticsearch


【解决方案1】:

在 Elasticsearch 中,您有两种替代解决方案来映射教师/学生关系:nested objectjoin datatype(父/子)。

如果学生人数不多,您可以将学生存储为嵌套对象数组,就像在您的示例中一样。但缺点与磁盘空间消耗以及每次更新或添加单个学生到现有文档有关:首先删除完整文档并重新索引为新文档。

另一方面,连接数据类型使用起来更复杂(您必须使用父子查询),但允许您以更独立于其父项的方式存储子项。如果孩子的数量很多并且孩子的更新和插入频繁,则连接数据类型很好。

【讨论】:

    猜你喜欢
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多