Elasticsearch索引文档的父子结构应用

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: Elasticsearch索引文档的父子结构应用

前言

由于Elasticsearch没有表和表的join关系,所以设计出来一种可以文档与文档关联起来的方法,其中包括

1.普通内部对象;
2.嵌套结构;
3.父子结构。

==以下操作都是通过kibana操作==

1. 创建索引mapping

PUT test01
{
  "mappings": {
    "properties": {
      "cust_num": {
        "type": "text"
      },
      "parent_child": {
        "type": "join",
        "relations": {
          "parent": "child"
        }
      }
    }
  }
}

解释:
1.提前在mapping中设定了一个field cust_name,type为text;
2.parent_child是父子文档关系的名字,可以自定义;
3.join 表示这个文档为父子关系;
4.relations:表示的是"父名": "子名",也可以自定义

2. 插入一条父文档

PUT test01/_doc/01
{
  "cust_num": "张三",
  "tag": [1,3,4],
  "parent_child": {
    "name": "parent"
  }
}

因为我们在前面创建mapping的时候已经设置了relations,在设置relations的时候指定了父文档的名称为==parent==,所以我们这一条插入的是父文档。

3. 插入一条子文档

PUT test01/_doc/02?routing=01
{
  "phone_tag": [2,5],
  "parent_child": {
    "name": "child",
    "parent": "01"
  }
}

解释:
文档id我们指定的为02,首先可以判断父文档和子文档是独立的文档,其次==routing== 是路由的意思,咱们这里指的是路由到父文档的id是01,这个id和下面的parent是一致的

4. 可解决的问题

1.需要将两条文档关联起来
2.查询的时候能查询到两条文档
3.单独更新a文档,或者b文档,不影响改变另一个文档的记录。

作者应用场景:同一个客户,要存储手机银行标签和电话银行标签,但是手机银行标签和电话银行标签都需要各自能独立维护
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
1月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
61 5
|
1月前
|
存储 分布式计算 大数据
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
57 3
|
11天前
|
存储 SQL 监控
|
8天前
|
存储 JSON 关系型数据库
Elasticsearch 索引
【11月更文挑战第3天】
25 4
|
11天前
|
自然语言处理 监控 数据可视化
|
20天前
|
测试技术 API 开发工具
ElasticSearch7.6.x 模板及滚动索引创建及注意事项
ElasticSearch7.6.x 模板及滚动索引创建及注意事项
35 8
|
1月前
|
人工智能
云端问道12期-构建基于Elasticsearch的企业级AI搜索应用陪跑班获奖名单公布啦!
云端问道12期-构建基于Elasticsearch的企业级AI搜索应用陪跑班获奖名单公布啦!
172 2
|
2月前
|
JSON 自然语言处理 算法
ElasticSearch基础2——DSL查询文档,黑马旅游项目查询功能
DSL查询文档、RestClient查询文档、全文检索查询、精准查询、复合查询、地理坐标查询、分页、排序、高亮、黑马旅游案例
ElasticSearch基础2——DSL查询文档,黑马旅游项目查询功能
|
2月前
|
JSON 自然语言处理 数据库
ElasticSearch基础1——索引和文档。Kibana,RestClient操作索引和文档+黑马旅游ES库导入
概念、ik分词器、倒排索引、索引和文档的增删改查、RestClient对索引和文档的增删改查
ElasticSearch基础1——索引和文档。Kibana,RestClient操作索引和文档+黑马旅游ES库导入
|
8天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
23 5