在Elasticsearch(简称ES)中,text和keyword是两种不同类型的字段,它们各自有不同的用途和特点。下面是对这两种字段的详细解释和对比: 1. text字段的用途和特点 text字段主要用于全文搜索。当你需要对字段内容进行分词、索引和搜索时,应该使用text字段。Elasticsearch会对text字段的内容进行分词处理,将文本拆分成多个词条(...
一、 背景 ES的基本数据类型很多,本文重点描述字符串类型:ES2.*版本里面是没有这两个字段,只有string字段。ES5.*及以后的版本,把string字段设置为了过时字段,引入text,keyword字段。ES的基本数据类型,根据不同版本可能略有差异,参考官网不同版本说明:https://www.elastic.co/guide/en/elasticsearch/reference...
text文本类型或keyword关键字类型 ES2.*版本里面是没有这两个字段,只有string字段。ES5.*及以后的版本,把string字段设置为了过时字段,引入text,keyword字段。 一切文本类型的字符串可以定义成 text文本类型或keyword关键字类型两种类型。区别在于: text类型(文本类型)会使用默认分词器分词,也就是存入的数据会先进行分词...
最后,我们发现他的结果:name和description都支持全文检索,pic不可作为查询条件 (二)keyword关键字字段 上边介绍的text文本字段在映射时要设置分词器,keyword字段为关键字字段,通常搜索keyword是按照整体搜索,所以创建keyword字段往索引目录写时是不进行分词的,比如:邮政编码、手机号码、身份证等。keyword字段通常用于过虑、...
ElasticSearch 5.0以后,string类型有重大变更,移除了string类型,string字段被拆分成两种新的数据类型: text用于全文搜索的,而keyword用于关键词搜索。 ElasticSearch字符串将默认被同时映射成text和keyword类型,将会自动创建下面的动态映射。 通过GET /dist_wechat_14_38/_mapping/field/weixin_number命令查看 weixin_number...
"type": "text", "fields":{ "keyword":{ "type":"keyword", "ignore_above":256 } } } 当需要对关键字进行分词检索,短语检索时使用text,可能是个长文本 keyword类型 支持精确检索 可以实现类型关系型数据库中like模糊检索 支持聚合和排序 支持按字数建立索引,以便节约索引空间 ...
Text:会分词,然后进行索引 支持模糊、精确查询 不支持聚合 keyword:不进行分词,直接索引 支持模糊、精确查询 支持聚合 text用于全文搜索的, 而keyword用于关键词搜索. 如果想做类似于sql中的like查询,可定义为keyword并使用通配符wildcard方式查询。 ElasticSearch字符串将默认被同时映射成text和keyword类型,将会自动创建下...
{"foo":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}} 这就是造成部分字段还会自动生成一个与之对应的“.keyword”字段的原因。 Text: 会分词,然后进行索引 支持模糊、精确查询 不支持聚合 keyword: 不进行分词,直接索引 支持...
(1)、keyword用于索引结构化内容,如ID、电子邮件地址、主机名、状态码、邮政编码或标签。 说明:keyword不会被分词,keyword类型的字段只能通过精确值(exact_value)搜索到,常用于排序、过滤、聚合. 注:数据Id应该使用keyword而不是int或者string等类型,因为keyword会被索引,性能更好. ...
我们先了解一下keyword和text类型的区别 keyword类型不会被分词的,适用于 标题 邮件 手机号 等,text会被分词,适用于描述 关键字 内容等 总结term 和match,match_phrase查询 keyword 必须要完全匹配 term查询text text分词中必须包含term 这里附带说一句,精准匹配,其实是不需要再计算评分的,我们可以使用 constant_sor...