带你读《Elastic Stack 实战手册》之20:——3.4.2.5.Object数据类型(上)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之20:——3.4.2.5.Object数据类型(上)

3.4.2.5.Object数据类型


创作人李增胜

 

在某些业务下,设计索引 Mapping 时,需要设计的对象中包含对象(非数组),此时就可以使用 Object 类型来存储对象。

 

以下定义了店铺对象,包含店铺名称、店铺编码、供应商信息,另外供应商信息中又包含供应商编码、供应商名称,同时供应商信息还包含自身的对象属性所在区域,所在区域又包含省和市,这种定义才能满足查询店铺信息、查询供应商所有店铺信息,以及查询某地区的所有店铺信息等等场景。

 

在如下示例中,supplier 是索引 my_shop 中的一个 Object,area 又是 supplier 的一个

 

image.png


在访问 area 时,需要通过 supplier.area 才能访问


#定义 mapping
PUT my_shop
{
  "settings": {
"index": {
      "number_of_shards": 1,
      "number_of_replicas": 1
    }
  },
  "mappings": {
    "properties": {
      "shopName": {
        "type": "text",
        "analyzer": "ik_smart"
      },
      "shopCode": {
        "type": "keyword"
      },
      "supplier": {
        "properties": {
          "supplier_code": {
            "type": "keyword"
          },
          "supplier_name": {
            "type": "text",
            "analyzer": "ik_smart"
          },
          "area": {
            "properties": {
              "province": {
                "type": "keyword"
              },
              "city": {
                "type": "keyword"
              }
            }
          }
        }
      }
    }
  }
}
#插入测试数据
POST my_shop/_bulk
{"index":{"_id":1}}
{"shopName":"苹果热销店铺","shopCode":"sc001","supplier":{"supplier_code":"001","supplier_name":"南京农村电商领导者","area":{"province":"江苏省","city":"南京市"}}}
{"index":{"_id":2}}
{"shopName":"美的热销店铺","shopCode":"sc002","supplier":{"supplier_code":"001","supplier_name":"南京农村电商领导者","area":{"province":"江苏省","city":"南京市"}}}
{"index":{"_id":3}}
{"shopName":"金沙酒热销店铺","shopCode":"sc003","supplier":{"supplier_code":"002","supplier_name":"山东农村电商领导者","area":{"province":"江苏省","city":"南京市"}}}
{"index":{"_id":4}}
{"shopName":"华为热销店铺","shopCode":"sc004","supplier":{"supplier_code":"002","supplier_name":"山东农村电商领导者","area":{"province":"山东省","city":"青岛市"}}}


《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.5.Object数据类型(下) https://developer.aliyun.com/article/1230875

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
4天前
|
JavaScript 前端开发 Java
编程笔记 html5&css&js 073 JavaScript Object数据类型
编程笔记 html5&css&js 073 JavaScript Object数据类型
|
9月前
|
JavaScript 前端开发 Java
为什么使用typeof判断数据类型的时候null出来是object?
为什么使用typeof判断数据类型的时候null出来是object?
|
10月前
|
C#
C#数据类型(object)
C#数据类型(object)
83 0
|
12月前
|
项目管理 微服务
带你读《Elastic Stack 实战手册》之20:——3.4.2.5.Object数据类型(下)
带你读《Elastic Stack 实战手册》之20:——3.4.2.5.Object数据类型(下)
判断Object中数据类型(已知类型、未知类型))
判断Object中数据类型(已知类型、未知类型))
111 0
|
JavaScript 前端开发 开发者
带你读书之“红宝书”:第三章 语法基础(中)之 数据类型中部分 Object 类型
带你读书之“红宝书”:第三章 语法基础(中)之 数据类型中部分 Object 类型
69 0
带你读书之“红宝书”:第三章 语法基础(中)之 数据类型中部分 Object 类型
|
安全 Java
Java——匿名内部类、Object类、Scanner类、String类、StringBuffer类、基本数据类型包装类和数组排序
Java——匿名内部类、Object类、Scanner类、String类、StringBuffer类、基本数据类型包装类和数组排序
157 0
Java——匿名内部类、Object类、Scanner类、String类、StringBuffer类、基本数据类型包装类和数组排序
|
存储 索引
Object 数据类型— Elastic Stack 实战手册
设计索引 Mapping 时,需要设计的对象中包含对象(非数组),此时就可以使用 Object 类型来存储对象。
201 0
Object 数据类型— Elastic Stack 实战手册
|
7月前
|
Java
【面试题精讲】Object类的常见方法有哪些?
【面试题精讲】Object类的常见方法有哪些?