《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用—— 3.4.2.2.理解mapping(上) https://developer.aliyun.com/article/1231104
查看映射
通过 /_mapping ,我们可以查看 Elasticsearch 在一个或多个索引中的映射。
#Elasticsearch 文档写入示例: PUT twitter/_doc/1 { "user": "kimchy", "post_date": "2009-11-15T13:12:00", "message": "Trying out Elasticsearch, so far so good?" } PUT twitter/_doc/2 { "user": "kimchy", "post_date": "2009-11-15T14:12:12", "message": "Another tweet, will it be indexed?" } PUT twitter/_doc/3 { "user": "elastic", "post_date": "2010-01-15T01:46:38", "message": "Building the site, should be kewl" }
查看索引映射示例:
GET twitter/_mapping
Elasticsearch 根据我们索引的文档,为字段动态生成的映射:
{ "twitter" : { "mappings" : { "properties" : { "message" : { "type" : "text", "fields" : { "keyword" : { "type" : "keyword", "ignore_above" : 256 } } }, "post_date" : { "type" : "date" }, "user" : { "type" : "text", "fields" : { "keyword" : { "type" : "keyword", "ignore_above" : 256 } } } } } } }
注意:错误的映射,例如将年龄字段映射为 text 类型,而不是 integer,会导致查询出现令人困惑的结果。
检查一下,而不是假设你的映射是正确的。
自定义字段映射
尽管在很多情况下基本字段数据类型已经够用,但你经常需要为单独字段自定义映射,特别是字符串字段。自定义映射允许你执行下面的操作:
l 全文字符串字段和精确值字符串字段的区别
l 使用特定语言分析器
l 优化字段以适应部分匹配
l 指定自定义数据格式
l 还有更多
字段最重要的属性是 type 。
{ "number_of_clicks": { "type": "integer" } }
字符串字段类型,包括全文字符串 text 和精确值字符串 keyword。
text 类型字段的最重要属性是分析器 analyzer,默认 Elasticsearch 使用 Standard 分析器, 但你可以指定一个内置的分析器替代它,例如 whitespace 、 simple 、english、cjk:
{ "message": { "type": "text", "analyzer": "cjk" } }
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用—— 3.4.2.2.理解mapping(下) https://developer.aliyun.com/article/1231102