ElasticSearch中 mappings数据类型keyword和text的区别

开始之前我先说一下在es中Settings和Mappings的含义以及区别。

首先settings是对于索引的元数据信息的设置,包括对分片和副本数的修改

mappings是对于索引数据的映射,主要是指每个字段的数据类型

既然说到了字段数据类型,我们回到主题,我们知道,在es中数据类型很多,我就不一一列举了,这里说一下我们常见的字符串类型

,在ElasticSearch5.0以后,对字符串类型做了重大的改变,那就是取消掉了string类型,把string类型拆分成了text和keyword类型,

其中text表示可以分词,用户全文检索,可以模糊匹配搜索,keyword是用于关键词搜索的,只能对某个值进行整体的搜索

text类型:

city": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } }

如果city字段的值是:日本是个岛国,那么我们搜索日本,是可以搜索到这条记录的

keyword类型:

"DestCityName": { "type": "keyword" },

如果DestCityName字段的值是:日本是个岛国,我们搜索日本的时候,是搜索不到这条记录的,需要把"日本是个岛国"作为一个整体来搜索,才可以,这就是text和keyword作为字符串类型的区别,也就是分词和不分词的区别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值