0
点赞
收藏
分享

微信扫一扫

ElasticSearch解析三:映射

一、ElasticSearch映射的基本操作

当我们创建了索引,就相当于创建了数据库。 创建好了文档,我们的表和数据就准备好了。 在使用关系型数据库的时候,我们有时候会改动表结构,例如字段的数据类型,字段值长度或列名称等。索引库也一样,需要知道这个类型下有哪些字段,每个字段有哪些约束信息,这就叫做映射(mapping)。

1.1 创建映射

使用PUT请求创建映射

PUT http://127.0.0.1:9200/student/_mapping
{
"properties": {
"name":{
"type": "text",
"index": true
},
"sex":{
"type": "text",
"index": false
},
"age":{
"type": "long",
"index": false
}
}
}

映射数据说明:

  • 字段名:任意填写,下面指定许多属性,例如: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:字段不会被索引,不能用来搜索
  • store:是否将数据进行独立存储,默认为false
    原始的文本会存储在_source里面,默认情况下其他提取出来的字段都不是独立存储的,是从_source里面提取出来的。当然你也可以独立的存储某个字段,只要设置"store": true即可,获取独立存储的字段要比从_source中解析快得多,但是也会占用更多的空间,所以要根据实际业务需求来设置。
  • analyzer:分词器,这里的ik_max_word即使用ik分词器

1.2 查看映射

使用GET请求查看映射

GET http://127.0.0.1:9200/student/_mapping

返回结果:

{
"student":{
"mapping":{
"age":{
"type":"long",
"index":false
},
"name":{
"type":"text"
},
"age":{
"type":"text",
"index":false
}
}
}
}

1.3 索引映射关联

使用PUT,将索引跟映射关联起来

PUT http://127.0.0.1:9200/student
{
"settings": {},
"mappings": {
"properties": {
"name":{
"type": "text",
"index": true
},
"sex":{
"type": "text",
"index": false
},
"age":{
"type": "long",
"index": false
}
}
}
}
举报

相关推荐

0 条评论