es创建索引设置字段不分词_【elasticsearch入门】elasticsearch索引的mapping及其设置...

本文详细介绍了Elasticsearch的mapping概念,包括为何要了解mapping、如何手动设置mapping、动态mapping的工作原理以及如何自定义分词器。还讨论了如何控制字段的索引、分词方式,并给出了设置索引模板和动态模板的示例。
摘要由CSDN通过智能技术生成

mapping 顾名思义,代表了映射关系。是文档中字段和数据类型的映射关系

为什么要了解mapping

虽然elasticsearch中已尽有的动态mapping(Dynamic Mapping),而且新增字段默认也会添加新的mapping,但是毕竟是机器,有时会推算的不对,比如地理位置信息,特殊格式化的日期类型等。这时,如果需要es提供排序、聚合等查询功能,就不能满足我们的需求。

什么是mapping

通过手动设置mapping,我们可以

定义文档里字段的数据类型

定义字段的名称

定义对应字段的是否索引

定义对应字段的分词方式

mapping会把JSON文档文档映射成Lucene所需要的扁平格式

一个mapping属于一个索引的type

每个文档都属于一个Type

一个type又一个mapping定义

7.0开始,不需要在mapping定义中指定type信息,因为默认每个索引只有一个type叫"_doc"

查询mapping

#GET 索引名/_mapping

GET mapping_test/_mapping

设置mapping

PUT users

{

"mappings" : {

"properties" : {

"firstName" : {

"type" : "text",//text类型全文搜索

"fields" : {

"keyword" : {

"type" : "keyword",//keyword支持聚合查询

"ignore_above" : 256

}

}

},

"lastName" : {

"type" : "keyword",

"null_value": "NULL"//支持字段为null,只有keyword类型支持

},

"mobile" : {

"type" : "text",

"index": false//此字段不被索引

},

"address":{

"type":"text",

"index_options":"offsets"//控制倒排索引记录的内容。offsets最多,记录四个

}

}

}

}

Dynamic Mapping

什么是动态mapping

在写入文档时,如果索引不存在,会自动创建索引,字段类型的自动识别如下:

JSON类型

Elastic search类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值