重庆建企业网站,17网站一起做网店怎么拿货,合肥经开区建设局网站,常州微信网站建设效果文章目录 以显式的方式创建一个映射查看某个具体索引的mapping定义向已存在的映射中添加一个新的属性查看映射中指定字段的定义信息更新已存在映射的某个字段 1、
官方文档地址 2、
字段类型 1、定义#xff1a;映射是定义文档及其包含的字段如何存储和索引的过程。 2、每个… 文章目录 以显式的方式创建一个映射查看某个具体索引的mapping定义向已存在的映射中添加一个新的属性查看映射中指定字段的定义信息更新已存在映射的某个字段 1、
官方文档地址 2、
字段类型 1、定义映射是定义文档及其包含的字段如何存储和索引的过程。 2、每个文档都是字段的集合每个字段都有自己的数据类型。 3、在映射数据时可以创建一个映射定义其中包含与文档相关的字段列表 4、映射定义还包括元数据字段如_source字段它自定义如何处理文档的关联元数据。 5、可以使用动态映射和显式映射这两种方式来定义数据。 以显式的方式创建一个映射
显式映射允许您精确地选择如何定义映射例如:
哪些字符串字段应被视为全文字段。哪些字段包含数字、日期或位置。日期值的格式。自定义规则来控制动态添加字段的映射。
显式的创建映射即在还没有向索引中添加数据之前就通过定义自定义的映射将其创建
PUT /my-index-000001
{mappings: {properties: {age: { type: integer }, email: { type: keyword }, name: { type: text } }}
}查看某个具体索引的mapping定义
GET index_name/_mapping
GET bank/_mapping可以看到mapping中定义的字段类型其中account_number是long类型、address字段是全文检索并且它还定义了下面的keyword属性是个keyword类型即不可分词。这也很好的解释了address.keyword为什么是精确匹配
向已存在的映射中添加一个新的属性
之前使用已经为my-index-000001这个索引定义好映射信息了如下
PUT /my-index-000001
{mappings: {properties: {age: { type: integer }, email: { type: keyword }, name: { type: text } }}
}现在想在对其添加一个新的属性employee_id,该怎么操作呢如下图中的代码片段所示
PUT /my-index-000001/_mapping
{properties: {employee-id: {type: keyword,index: false}}
}其中index: false表示当前字段不能被索引这个index和type一样都叫 mapping parameters,这里是官方文档的入口
查看映射中指定字段的定义信息
比如只想查看my-index-000001中的employee_id字段的定义信息可以使用以下命令
GET /my-index-000001/_mapping/field/employee-id该API响应的结果如下
{my-index-000001 : {mappings : {employee-id : {full_name : employee-id,mapping : {employee-id : {type : keyword,index : false}}}}}
}更新已存在映射的某个字段
该小节只进行简单的记录具体操作阅读官方文档寻找对应的解决方案
官方明确说明除了支持的映射参数外您不能更改现有字段的映射或字段类型。更改现有字段可能会使已经索引的数据无效;如果需要更改索引中字段的映射请创建具有正确映射的新索引并将数据重新索引到该索引中。
不能在已存在的映射上直接修改重新定义一个正确的映射使用reindex将数据迁移
官方在这里提到了一个名词 reindx ,这也是更新映射中某个字段的具体解决办法