映射参数

映射参数 #

映射参数用于控制字段的索引方式、存储行为和搜索特性。合理配置这些参数可以优化查询性能和存储效率。

概念指南 → 了解如何设计映射,请阅读:


按功能分类 #

索引控制 #

控制字段是否可被搜索以及如何索引。

参数说明默认值
index是否索引该字段(可搜索)true
enabled是否解析和索引该对象字段true
doc_values是否存储列式数据(用于排序/聚合)true
store是否独立存储字段值false
norms是否存储长度归一化因子text: true

文本分析 #

控制文本字段的分词和搜索行为。

参数说明默认值
analyzer索引和搜索时的分词器standard
search_analyzer仅搜索时使用的分词器analyzer
search_quote_analyzer带引号短语查询时使用的分词器search_analyzer
normalizerkeyword 字段的归一化器
term_vector是否存储词条向量no
position_increment_gap数组元素间的位置间隔100
fielddata_frequency_filter字段数据频率过滤器配置
index_phrases是否为短语查询构建额外索引false
index_prefixes是否为前缀查询构建额外索引false
split_queries_on_whitespace查询是否在空白处拆分false

数据转换 #

控制数据类型转换和格式化。

参数说明默认值
format日期字段的解析格式strict_date_optional_time\|\|epoch_millis
locale解析日期/范围时使用的区域设置
coerce是否自动转换数据类型true
null_valuenull 的替代值
ignore_malformed是否忽略格式错误的值false
ignore_above超长字符串不索引的阈值2147483647
ignore_z_value是否忽略地理坐标的 Z 值true

字段结构 #

控制字段的组织和扩展方式。

参数说明默认值
fields多字段定义(同字段多种索引方式)
properties对象/嵌套字段的子字段定义
copy_to将字段值复制到目标字段
dynamic是否动态添加新字段true

搜索与评分 #

控制搜索行为和相关性评分。

参数说明默认值
boost字段权重提升因子1.0
similarity相关性评分算法BM25
fielddatatext 字段是否启用堆内存聚合false
eager_global_ordinals是否提前构建全局序数false

完成字段(Completion) #

特定于自动完成/搜索建议的参数。

参数说明默认值
preserve_separators是否保留分隔符true
preserve_position_increments是否保留位置增量true
contexts完成上下文定义
max_input_length最大输入长度50

Mapper 扩展模块参数 #

mapper-extras 模块提供的特殊字段类型的参数。

参数字段类型说明默认值
scaling_factorscaled_float浮点数的缩放因子
positive_score_impactrank_feature特性对得分的影响true
enable_position_incrementstoken_count是否包含位置增量true
max_shingle_sizesearch_as_you_type最大 shingle 大小3

元数据 #

附加信息和说明。

参数说明默认值
meta自定义元数据(单位、说明等)

常用参数详解 #

index — 是否可搜索 #

{
  "properties": {
    "internal_id": {
      "type": "keyword",
      "index": false
    }
  }
}
  • true(默认):字段可被搜索
  • false:字段不可搜索,但仍可聚合(如果 doc_values=true)

使用场景:仅用于聚合或排序的字段可设为 index: false

doc_values — 列式存储 #

{
  "properties": {
    "description": {
      "type": "text",
      "doc_values": false
    }
  }
}
  • true(默认):支持排序和聚合
  • false:节省磁盘空间,但无法排序/聚合

使用场景:纯全文搜索字段可关闭 doc_values

copy_to — 字段合并 #

{
  "properties": {
    "title": {
      "type": "text",
      "copy_to": "full_content"
    },
    "body": {
      "type": "text",
      "copy_to": "full_content"
    },
    "full_content": {
      "type": "text"
    }
  }
}

将多个字段内容复制到一个目标字段,便于跨字段搜索。

fields — 多字段 #

{
  "properties": {
    "title": {
      "type": "text",
      "fields": {
        "keyword": {
          "type": "keyword"
        },
        "english": {
          "type": "text",
          "analyzer": "english"
        }
      }
    }
  }
}

同一字段以多种方式索引:

  • title → 默认分词搜索
  • title.keyword → 精确匹配、聚合
  • title.english → 英语词干搜索

ignore_above — 截断长字符串 #

{
  "properties": {
    "tag": {
      "type": "keyword",
      "ignore_above": 256
    }
  }
}

超过 256 字符的值不被索引(但仍存储在 _source 中)。


参数适用类型 #

参数textkeywordnumericdatebooleanobjectnested
analyzer------
boost--
coerce-----
copy_to--
doc_values---
dynamic-----
enabled------
fielddata------
fields--
format------
ignore_above------
ignore_malformed-----
index--
meta
normalizer------
norms-----
null_value---
properties-----
search_analyzer------
similarity------
store--
term_vector------

完整参数列表 #

参数描述默认值
analyzer指定索引和搜索时使用的分词器standard
boost查询时的字段权重提升因子1.0
coerce控制是否自动将值转换为字段类型true
contexts完成字段的上下文定义
copy_to将字段值复制到目标字段
doc_values是否存储列式数据以加速排序和聚合true
dynamic是否动态添加新字段true
eager_global_ordinals是否在刷新时提前构建全局序数false
enable_position_increments令牌计数是否包含位置增量true
enabled是否解析和索引该字段true
fielddata是否为 text 字段启用堆内存排序/聚合false
fielddata_frequency_filter字段数据频率过滤器配置
fields为同一字段定义多种索引方式
format指定日期字段的解析格式strict_date_optional_time\|\|epoch_millis
ignore_above超过指定长度的字符串不被索引2147483647
ignore_malformed是否忽略格式错误的值false
ignore_z_value是否忽略地理坐标的 Z 值true
index控制字段是否可被搜索true
index_phrases是否为短语查询构建额外索引false
index_prefixes是否为前缀查询构建额外索引false
locale解析日期/范围时的区域设置
max_input_length完成字段的最大输入长度50
max_shingle_sizesearch_as_you_type 的最大 shingle 大小3
meta附加自定义元数据
normalizerkeyword 字段的归一化处理器
norms是否存储字段长度归一化因子text: true
null_value用指定值替代 null
position_increment_gap数组元素间的位置间隔100
positive_score_impactrank_feature 对得分的影响方向true
preserve_position_increments完成字段是否保留位置增量true
preserve_separators完成字段是否保留分隔符true
properties定义对象/嵌套字段的子字段映射
scaling_factorscaled_float 字段的缩放因子
search_analyzer查询时使用的分词器analyzer
search_quote_analyzer带引号短语查询时的分词器search_analyzer
similarity相关性评分算法BM25
split_queries_on_whitespace查询是否在空白处拆分false
store是否独立存储字段值false
term_vector是否存储词条向量no