千家信息网

Elasticsearch映射字段数据类型及管理的方法

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,本篇内容主要讲解"Elasticsearch映射字段数据类型及管理的方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Elasticsearch映射字段数
千家信息网最后更新 2025年01月16日Elasticsearch映射字段数据类型及管理的方法

本篇内容主要讲解"Elasticsearch映射字段数据类型及管理的方法",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Elasticsearch映射字段数据类型及管理的方法"吧!

Elasticsearch映射管理

在Elasticsearch 6.0.0或更高版本中创建的索引只包含一个mapping type。 在5.x中使用multiple mapping types创建的索引将继续像以前一样在Elasticsearch 6.x中运行。 Mapping types将在Elasticsearch 7.0.0中完全删除

一 映射介绍

在创建索引的时候,可以预先定义字段的类型及相关属性

Es会根据Json数据源的基础类型,猜测你想要映射的字段,将输入的数据转变成可以搜索的索引项。

Mapping是我们自己定义的字段数据类型,同时告诉es如何索引数据及是否可以被搜索

作用:会让索引建立的更加细致和完善

1.1 字段数据类型

string类型:text,keyword

数字类型:long,integer,short,byte,double,float

日期类型:data

布尔类型:boolean

binary类型:binary

复杂类型:object(实体,对象),nested(列表)

geo类型:geo-point,geo-shape(地理位置)

专业类型:ip,competion(搜索建议)

1.2 映射参数

属性描述适合类型
store值为yes表示存储,no表示不存储,默认为noall
indexyes表示分析,no表示不分析,默认为truetext
null_value如果字段为空,可以设置一个默认值,比如"NA"(传过来为空,不能搜索,na可以搜索)all
analyzer可以设置索引和搜索时用的分析器,默认使用的是standard分析器,还可以使用whitespace,simple。都是英文分析器all
include_in_all默认es为每个文档定义一个特殊域_all,它的作用是让每个字段都被搜索到,如果想让某个字段不被搜索到,可以设置为falseall
format时间格式字符串模式date

二 创建索引

text类型会取出词做倒排索引,keyword不会被分词,原样存储,原样匹配

mapping类型一旦确定,以后就不能修改了

#6.x的版本没问题PUT books{  "mappings": {    "book":{      "properties":{        "title":{          "type":"text",           "analyzer": "ik_max_word"        },        "price":{          "type":"integer"        },        "addr":{          "type":"keyword"        },        "company":{          "properties":{            "name":{"type":"text"},            "company_addr":{"type":"text"},            "employee_count":{"type":"integer"}          }        },        "publish_date":{"type":"date","format":"yyy-MM-dd"}      }    }  }}

7.x版本以后

PUT books{  "mappings": {    "properties":{      "title":{        "type":"text",        "analyzer": "ik_max_word"      },      "price":{        "type":"integer"      },      "addr":{        "type":"keyword"      },      "company":{        "properties":{          "name":{"type":"text"},          "company_addr":{"type":"text"},          "employee_count":{"type":"integer"}        }      },      "publish_date":{"type":"date","format":"yyy-MM-dd"}    }  }}

插入数据测试:

PUT books/_doc/1{  "title":"大头儿子小偷爸爸",  "price":100,    "addr":"北京天安门",  "company":{    "name":"我爱北京天安门",    "company_addr":"我的家在东北松花江傻姑娘",    "employee_count":10  },  "publish_date":"2019-08-19"}#测试数据2PUT books/_doc/2{  "title":"白雪公主和十个小矮人",  "price":"99", #写字符串会自动转换  "addr":"黑暗森里",  "company":{    "name":"我的家乡在上海",    "company_addr":"朋友一生一起走",    "employee_count":10  },  "publish_date":"2018-05-19"}

三 查看索引

#查看books索引的mappingGET books/_mapping#获取所有的mappingGET _all/_mapping

到此,相信大家对"Elasticsearch映射字段数据类型及管理的方法"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0