其他分享
首页 > 其他分享> > ElasticSearch-mappings自定义创建映射

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、微信号、手机号等,这些精确匹配,无需分词。

标签:index,mappings,自定义,text,映射,索引,ElasticSearch,type,es
来源: https://blog.csdn.net/qq_31776219/article/details/114528616