ElasticSearch-mappings自定义创建映射

mappings自定义创建映射

es的映射就相当于编程语言中给变量定义类型,定义后的变量使用起来更高效,未定义的变量相较于定义的性能肯定是不如的。所以需要掌握es映射。

未定义映射es会对提供的数据进行类型猜测,如果对自动判断的类型及参数设置不满意,或者需要使用一些更高级的映射设置,那么就需要使用自定义映射。

添加映射格式:

curl -X PUT "localhost:9200/my_index?pretty" -H 'Content-Type: application/json' -d'
{
  "mappings": {
    "_doc": { 
      "properties": { 
        "title":    { "type": "text"  }, 
        "name":     { "type": "text"  }, 
        "age":      { "type": "integer" },  
        "created":  {
          "type":   "date", 
          "format": "strict_date_optional_time||epoch_millis"
        }
      }
    }
  }
}

中文翻译后的意思:

{
  "properties":{
    "字段名称":{
      "type":"字段类型",
      "store":"是否存储",
      "index":"索引方式、是否分析"
      ...
    }
  }
}'

mapping中字段可参考es官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/6.5/mapping.html

一个索引对应一个映射,一个索引下多个type无法对应多个映射的。7.0版本以后,索引下的type类型就弃用了。最主要原因为了提高性能

通过postman发送请求创建映射

http://192.168.145.131:9200/index_mapping

{
  "mappings": {
      "properties": {
        "name":{  
          "type": "text" 
        },
        "username":{
            "type":"keyword",
            "index":false
        }
      }
  }
}

在这里插入图片描述
通过es-header查看索引信息,index为true可以做分词去查询
在这里插入图片描述

查看分词效果(注意text和keyword的区别)

http://192.168.145.131:9200/index_mapping/_analyze

{
    "field":"name",
    "text":"i like apple"
}

在这里插入图片描述

在这里插入图片描述
某个属性一旦被建立,就不能修改了,但是可以新增额外属性
在这里插入图片描述

为已存在的索引创建或创建mappings

在这里插入图片描述

Elasticsearch-head可视化查看

在这里插入图片描述

主要数据类型

text, keyword, string
long, integer, short, byte
double, float
boolean
date
object
数组不能混,类型一致

字符串

text:文字类需要被分词被倒排索引的内容,比如商品名称、商品详情、商品介绍,使用text。
keyword:不会被分词,不会被倒排索引,直接匹配搜索,比如订单状态、用户qq、微信号、手机号等,这些精确匹配,无需分词。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunywz

~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值