上海专业网站建设维护wordpress后台进
news/
2025/10/5 22:40:19/
文章来源:
上海专业网站建设维护,wordpress后台进,wordpress+资源分享,搜索引擎seo关键词优化方法Elasticsearch的Mapping
Mapping是什么 Mapping定义了ES的索引结构、字段类型、分词器等#xff0c;是索引的一部分。类似于关系型数据库中“表结构”的概念#xff0c;在 Mapping 里也包含了一些属性#xff0c;比如字段名称、类型、字段使用的分词器、是否评分、是否创建…Elasticsearch的Mapping
Mapping是什么 Mapping定义了ES的索引结构、字段类型、分词器等是索引的一部分。类似于关系型数据库中“表结构”的概念在 Mapping 里也包含了一些属性比如字段名称、类型、字段使用的分词器、是否评分、是否创建索引等属性 查看索引Mapping 查看索引完整mapping: get /my_index/_mappings查看索引指定字段的mapping: get /my_index/_mappings/field/xxx 字段数据类型常用 数字类型long、integer、short、byte、double、float基本数据类型boolean、aliaskeywords类型:keyword:用于索引结构化字段可用于过滤、排序、聚合keyword类型只能通过精确值搜索到比如ID、姓名等wildcrd:可以针对类似grep的用于模糊查询时间类型date、data_nanos对象类型object:非基本类型之外默认的json对象为Objectflattened:单映射对象类型、其值为json对象nested:嵌套类型join:父子关系类型空间数据类型geo_point:空间中的点比如经纬度geo_shape:复杂型状比如多边形文本搜索类型text:文本类型适用于全文检索completion:用于自动补全即搜索推荐 映射类型两种
自动映射-Dynamic Field Mapping不推荐使用 es在增加数据的时候如果没有指定字段的类型es会自动分配类型 如果是true或false默认boolean如果是小数默认float如果是数字默认long如果是object默认object如果数组取决于数组中第一个非空元素类型如果是日期格式字符串默认date如果是数字类型字符串默认float或long如果其它字符串默认textkeyword 显示映射-Expllcit Field Mapping 在创建Mapping时候手动创建类型 例子
PUT my_index
{mappings: {properties: {name: {type: text},age: {type: integer}}}
}映射参数 映射参数就是在创建索引时候的mapping中可以配置什么参数分别代表什么含义 index:表示对当前自动创建倒排索引默认true,如果不创建索引则不可以通过当前字段作为搜索条件analyzer:指定分词器只可以对可以分词的字段类型使用boots:对当前字段相关度评分权重默认1coerce:是否允许强制类型转换copy_to:用于将其它字段拼接后存储到当前字段中doc_value:默认为true,可以提高排序和聚合的效率dynamic:控制是否可以动态添加新的字段strict:如果检测到新字段会引发异常并拒绝文档必须将新字段显示的添加到mapping中eager_global_ordinals用于聚合字段提示聚合性能enabled:是否创建倒排索引可以作用于mapping也可以作用于field上fielddata:查询时内存数据结构在内存中存储设置字段为filedata会给该字段创建倒排索引并放到内存中。field:当前字段的子字段format:定义日期格式ignore_above:超过长度的内容被忽略不被存储ignore_malformed:忽略类型错误index_phrases:提升exact_value查询速度index_prefixes:前缀检索有两个属性min_chars:前缀最小长度默认2max_chars:前缀最大长度默认5最大20meta:添加元数据norms:是否禁用评分null_value:为空值赋值默认值properties:在mapping中可以配置字段的属性search_analyzer:设置单独的查询分析器,默认和analyzer一致如果两者都没设置默认为”standard。analyzer针对元数据search_analyzer针对搜索的内容。similarity:为字段设置相关度算法store:设置字段是否创建索引term_vector:运维参数 映射模板 映射模板用来解决不确定的类型或字段名索引的创建可以理解为批量处理索引的mapping 例子给user索引创建两个模板第一个模板将long类型的属性默认转换为integer类型第二个模板将以sum_开头的字段且不以_text结尾的字段且为String类型的字段转换为keyword类型
put user3
{mappings:{dynamic_templates:[{long-to-integer:{match_mapping_type: long,mapping:{type: integer}}},{num_and_string:{match_mapping_type:string,match:num_*,unmatch:*_text,mapping:{type:keyword}}}]}
}查看索引
{user3: {mappings: {dynamic_templates: [{long-to-integer: {match_mapping_type: long,mapping: {type: integer}}},{num_and_string: {match: num_*,unmatch: *_text,match_mapping_type: string,mapping: {type: keyword}}}],properties: {age: {type: integer},firends: {properties: {age: {type: integer},num_test1: {type: keyword}}},name: {type: text,fields: {keyword: {type: keyword,ignore_above: 256}}},num_test2: {type: keyword},num_test2_text: {type: text,fields: {keyword: {type: keyword,ignore_above: 256}}}}}}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928806.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!