• ElasticSearch(四):ES nested嵌套文档与父子文档处理


    Elasticsearch中如何处理关联关系

    在ES中,处理实体之间的关系并不像关系型存储那样明显。在关系数据库中的黄金准则 - 数据规范化,在ES中并不适用。在处理关联关系,嵌套对象和父子关联关系中,我们会讨论几种可行方案的优点和缺点。

    紧接着在为可扩展性而设计中,我们会讨论ES提供的一些用来快速灵活实现扩展的特性。对于扩展,并没有一个可以适用于所有场景的解决方案。你需要考虑数据是如何在你的系统中流转的,从而恰当地对你的数据进行建模。针对基于时间的数据比如日志事件或者社交数据流的方案比相对静态的文档集合的方案是十分不同的。

    反范式化(Denormalize)的设计不使用关联关系,而是在文档中保存冗余的数据拷贝。

    优点: 无需处理Join操作,数据读取性能好。Elasticsearch可以通过压缩_source字段,减少磁盘空间的开销
    缺点: 不适合在数据频繁修改的场景。 一条数据的改动,可能会引起很多数据的更新

    Elasticsearch并不擅长处理关联关系,一般会采用以下四种方法处理关联:

    对象类型
    嵌套对象(Nested Object)
    父子关联关系(Parent / Child )
    应用端关联

    对象类型

    对象类型:
    在每一个用户的文档里都记录用户的住址信息
    如果用户的住址信息发生变化,需要修改对应的用户信息

    PUT /user_index
    {
      "mappings": {
        "properties": {
          "user_name": {
      
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    1.2-断言
    自学网络安全———(黑客技术)
    汽车智能座舱/智能驾驶SOC -1
    网络安全(黑客)自学
    RAW图像处理软件Capture One 23 Enterprise mac中文版功能特点
    计算机毕业设计ssm+vue基本微信小程序的校园生活助手系统
    torch.nn.parameter详解
    C语言指针从基础到进阶
    Python 接口测试之接口请求方法封装
    01 C语言程序设计
  • 原文地址:https://blog.csdn.net/huanglu0314/article/details/126651963