这篇文章主要讲解了“Elasticsearch的dynamic_templates怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Elasticsearch的dynamic_templates怎么使用”吧!
一、
使用dynamic_templates可以完全控制新字段的映射,你设置可以通过字段名或数据类型应用一个完全不同的映射。
每个模板都由一个名字用于描述这个模板的用途,一个mapping字段用于指导这个映射怎么使用,和至少一个参数match来定义这个模板使用哪个字段。模板是按照顺序检测的,第一个匹配的模板会被启用。通常把具体的模板放置在第一位,不然通用性模板会匹配,导致具体的是无法被匹配到的。
注:以下都是在sense上操作的
例子:我们为/my_index/my_type 分别创建
es:字段名以_es结尾的且是string类型的,需要使用spanish分词器
enn:其他字段的且是string类型的,需要使用english分词器
DELETE /my_index PUT /my_index { "mappings":{ "my_type":{ "dynamic_templates":[ { "es":{ =>模板名称,随意,一般要有语义 "match":"*_es", =>匹配字段名称 "match_mapping_type":"string" =>匹配字段类型 "mapping":{ => 当匹配到之后,该字段的具体设置 "type":"string", "anaylzer":"spanish" } } }, { "en":{ =>模板名称,随意,一般要有语义 "match":"*", =>匹配字段名称(任意,通用的顺序要在之后) "match_mapping_type":"string" =>匹配字段类型 "mapping":{ => 当匹配到之后,该字段的具体设置 "type":"string", "anaylzer":"english" } } } ] } } } POST /my_index/my_type { "str_es":"xxx", => 匹配es (字段名称匹配,类型匹配) "long_es":123, => 不会匹配es (字段名称匹配,但类型不匹配) "date_es":"2015-01-01", => 不会匹配es (字段名称匹配,但类型不匹配) "long_en":123, => 不会匹配en (字段名称匹配,但类型不匹配) "str_en":"xxx", => 匹配en (字段名称匹配,但类型不匹配) "date_en":"2015-01-01" => 不会匹配en (字段名称匹配,但类型不匹配) } //mapping如下,正是结果 GET /my_index/my_type { "my_index": { "mappings": { "my_type": { "dynamic_templates": [ { "es": { "mapping": { "analyzer": "spanish", "type": "string" }, "match": "*_es", "match_mapping_type": "string" } }, { "en": { "mapping": { "analyzer": "english", "type": "string" }, "match": "*", "match_mapping_type": "string" } } ], "properties": { "date_en": { "type": "date", "format": "dateOptionalTime" }, "date_es": { "type": "date", "format": "dateOptionalTime" }, "long_en": { "type": "long" }, "long_es": { "type": "long" }, "str_en": { "type": "string", "analyzer": "english" }, "str_es": { "type": "string", "analyzer": "spanish" }, "str_es2": { "type": "string", "analyzer": "english" } } } } } } 二、默认映射 _default_ 通常一个索引中的所有类型具有共享的字段和设置,用_default_映射来指定会设置更方便,而不是每次创建一个类型是重复操作。_default_映射新类型的模板,除非在自己类型的明确进行覆盖
感谢各位的阅读,以上就是“Elasticsearch的dynamic_templates怎么使用”的内容了,经过本文的学习后,相信大家对Elasticsearch的dynamic_templates怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。