温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Elasticsearch的dynamic_templates怎么使用

发布时间:2021-12-16 10:29:33 来源:亿速云 阅读:458 作者:iii 栏目:云计算

这篇文章主要讲解了“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怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI