Elasticsearch7.8.0版本入门—— Elasticsearch7.8.0映射操作

Posted 小志的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch7.8.0版本入门—— Elasticsearch7.8.0映射操作相关的知识,希望对你有一定的参考价值。

目录

一、映射的概述

  • 有了索引库,等于有了数据库中的 database。
  • 索引库(index)中的映射,类似于数据库(database)中的表结构(table)。
  • 创建数据库表需要设置字段名称,类型,长度,约束等;索引库也一样,需要知道这个类型
    下有哪些字段,每个字段有哪些约束信息,这就叫做映射(mapping)。

二、创建映射的示例

2.1、首先,创建索引

  • 在 Postman 中,向 ES 服务器发 PUT 请求 :http://127.0.0.1:9200/student
  • 请求后,服务器返回响应

2.2、然后,再创建好的索引基础上,创建映射

  • 在 Postman 中,向 ES 服务器发 PUT 请求 :http://127.0.0.1:9200/student/ _mapping,请求体内容为:

    
        "properties": 
            "name":
                "type": "text",
                "index": true
            ,
            "sex":
                "type": "keyword",
                "index": true
            ,
            "age":
                "type": "long",
                "index": false
            
        
    
    

  • 请求后,服务器返回响应

2.3、映射属性说明

  • 映射属性说明列表
    属性解释
    字段名
    任意填写,下面指定许多属性,例如:title、subtitle、images、price
    type
    类型,Elasticsearch 中支持的数据类型非常丰富,说几个关键的:
    String 类型,分两种(text:可分词;keyword:不可分词,数据会作为完整字段进行匹配)
    Numerical:数值类型,分两类(基本数据类型:long、integer、short、byte、double、float、half_float;浮点数的高精度类型:scaled_float)
    Date:日期类型
    Array:数组类型
    Object:对象
    index
    是否索引,默认为 true,也就是说你不进行任何配置,所有字段都会被索引。
    true:字段会被索引,则可以用来进行搜索
    false:字段不会被索引,不能用来搜索
    index
    是否将数据进行独立存储,默认为 false
    原始的文本会存储在_source 里面,默认情况下其他提取出来的字段都不是独立存储 的,是从_source 里面提取出来的。当然你也可以独立的存储某个字段,只要设置 "store": true 即可,获取独立存储的字段要比从_source 中解析快得多,但是也会占用 更多的空间,所以要根据实际业务需求来设置。
    analyzer
    分词器,这里的 ik_max_word 即使用 ik 分词器

2.4、查看创建的映射

  • 在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/ _mapping
  • 请求后,服务器返回响应

2.5、最后,创建文档

  • 在 Postman 中,向 ES 服务器发 PUT 请求 :http://127.0.0.1:9200/student/_doc/1,请求体内容为:

    
    	"name":"王五",
    	"age":30,
    	"sex":"男的"
    
    

  • 请求后,服务器返回响应

2.6、根据文档中name属性条件查询文档 理解映射示例

  • 在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search,请求体内容为:

    
        "query":
            "match":
                "name":"王"
            
        
    
    

  • 请求后,服务器返回响应

  • 由上图输出结果可知:通过name=“王”,即可查出结果数据,说明创建映射时name属性设置的type值为text,具有分词效果。

2.7、根据文档中sex属性条件查询文档 理解映射示例

  • 在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search,请求体内容为:

    
        "query":
            "match":
                "sex":"男"
            
        
    
    

  • 请求后,服务器返回响应

  • 由上图输出结果可知:通过sex=“男”,查出结果数据为空,说明创建映射时sex属性设置的type值为keyword,不具备分词效果。

2.8、根据文档中age属性条件查询文档 理解映射示例

  • 在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search,请求体内容为:

    
        "query":
            "match":
                "age":"30"
            
        
    
    

  • 请求后,服务器返回响应

  • 由上图输出结果可知:通过age=“30”,查出结果报错,说明创建映射时age属性设置的index值为false,字段不会被索引,不能用来搜索。

以上是关于Elasticsearch7.8.0版本入门—— Elasticsearch7.8.0映射操作的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch7.8.0版本入门—— Elasticsearch7.8.0映射操作

Elasticsearch7.8.0版本入门—— Elasticsearch7.8.0映射操作

Elasticsearch7.8.0版本入门——单机部署(linux环境-centos7)

Elasticsearch7.8.0版本入门——集群部署(linux环境-centos7)

Elasticsearch入门——Elasticsearch7.8.0版本和Kibana7.8.0版本的下载安装(win10环境)

Elasticsearch入门——Elasticsearch7.8.0版本和Kibana7.8.0版本的下载安装(win10环境)