8288分类目录 8288分类目录 8288分类目录
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

elasticsearch的mapping参数

来源:本站原创 浏览:41次 时间:2023-04-11
简介

elasticsearch的mapping属于template的一部分,mapping主要用于设置document的有哪些字段,字段的类型,字段的参数,以实现字段如何被存储和如何被索引查询等特性。

mapping组成

一个mapping主要有两部分组成:

  • metadata mapping
    元数据字段用于自定义如何处理文档关联的元数据。例如:
    _index:用于定义document属于哪个index
    _type:document的type。从es6.x开始,一个index只能有一个type
    _id:document的唯一id
    _source:存放原始的document数据
    _size:_source字段中存放的数据的大小
  • fields
    mapping中包含的field,包含字段的类型和参数。本文主要介绍的mapping参数就需要在field中去定义。例如:
    type:设置字段对应的类型,常见的有text,keyword等mapping参数

主要参数如下:

  • analyzer
    只能用于text字段,用于根据需求设置不通的分词器
  • boost
    默认值为1。用于设置字段的权重,主要应用于查询时候的评分
  • coerce
    默认是true。主要用于清理脏数据来匹配字段对应的类型。例如字符串“5”会被强制转换为整数,浮点数5.0会被强制转换为整数
  • copy_to
    能够把几个字段拼成一个字段。老字段和新组成的字段都可以查询
  • doc_values
    默认值为true。Doc Values和倒排索引同时生成,本质上是一个序列化的 列式存储。列式存储适用于聚合、排序、脚本等操作,也很适合做压缩。如果字段不需要聚合、排序、脚本等操作可以关闭掉,能节省磁盘空间和提升索引速度。
  • dynamic
    默认值为true。默认如果插入的document字段中有mapping没有的,会自动插入成功,并自动设置新字段的类型;如果一个字段中插入一个包含多个字段的json对象也会插入成功。但是这个逻辑可以做限制:
    1.ture: 默认值,可以动态插入
    2.false:数据可写入但是不能被索引分析和查询,但是会保存到_source字段。
    3。strict:无法写入
  • eager_global_ordinals
    默认值为false。设置每refresh一次就创建一个全局的顺序映射,用于预加载来加快查询的速度。需要消耗一定的heap。
  • enabled
    默认值为true。设置字段是否索引分析。如果设置为false,字段不对此字段索引分析和store,会导致此字段不能被查询和聚合,但是字段内容仍然会存储到_source中。
  • fielddata
    默认值为false,只作用于text字段。默认text字段不能排序,聚合和脚本操作,可以通过开启此参数打开此功能。但是会消耗比较大的内存。
  • fields
    可以对一个字段设置多种索引类型,例如text类型用来做全文检索,再加一个keyword来用于做聚合和排序。
  • format
    用于date类型。设置时间的格式。具体见https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html
  • ignore_above
    默认值为256,作用于keyword类型。指示该字段的最大索引长度(即超过该长度的内容将不会被索引分析),对于超过ignore_above长度的字符串,analyzer不会进行索引分析,所以超过该长度的内容将不会被搜索到。注意:keyword类型的字段的最大长度限制为32766个UTF-8字符,text类型的字段对字符长度没有限制
  • ignore_malformed
    默认为false。插入新document的时候,是否忽略字段的类型,默认字段类型必须和mapping中设置的一样
  • index_options
    默认值为positions,只作用于text字段。控制将哪些信息添加到倒排索引中以进行搜索和突出显示。有4个选项:
    1.docs 添加文档号
    2.freqs 添加文档号和次频
    3.positions 添加文档号,词频,位置
    4.offsets 添加文档号,词频,位置,偏移量
  • index
    默认值为true。设置字段是否会被索引分析和可以查询
  • meta
    可以给字段设置metedata字段,用于标记等
  • normalizer
    可以对字段做一些标准化规则,例如字符全部大小写等
  • norms
    默认值为true。默认会存储了各种规范化因子,在查询的时候使用这些因子来计算文档相对于查询的得分,会占用一部分磁盘空间。如果字段不用于检索,只是过滤,查询等精确操作可以关闭。
  • null_value
    null_value意味着无法索引或搜索空值。当字段设置为 null , [] ,和 [null](这些null的表示形式都是等价的),它被视为该字段没有值。通过设置此字段,可以设置控制可以被索引和搜索。
  • properties
    如果这个字段有嵌套属性,包含了多个子字段。需要用到properties
  • search_analyzer
    默认值和analyzer相同。在查询时,先对要查询的text类型的输入做分词,再去倒排索引搜索,可以通过这个设置查询的分析器为其它的
  • similarity
    用于设置document的评分模型,有三个:
    1.BM25:lucene的默认评分模型
    2.classic:TF/IDF评分模型
    3.boolean:布尔评分模型
  • store
    默认为false,lucene不存储原始内容,但是_source仍然会存储。这个属性其实是lucene创建字段时候的一个选项,表明是否要单独存储原始值(_source字段是elasticsearch单独加的和store没有关系)。如果字段比较长,从_source中获取损耗比较大,可以关闭_source存储,开启store。
  • term_vector
    默认值为no,不存储向量信息总结

    根据实际需要,来设置mapping参数,能够节省磁盘,内存,计算等资源。

    参考

    https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html
    https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-params.html
    https://www.elastic.co/guide/cn/elasticsearch/guide/current/_deep_dive_on_doc_values.html

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net