You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建兼容Elasticsearch 7.x/8.x且不会失效的文档字段默认映射

解决方案

你最初编写的无_doc类型嵌套的映射创建请求就是唯一同时兼容Elasticsearch 7.x和8.x的标准写法,完全符合移除类型后的规范,无需调整结构。

你误以为分析器未生效是验证方式错误导致的:_search接口返回的_source字段存储的是文档写入时的原始内容,不会展示分词后的结果,无法用来验证分析器是否生效。
你可以使用_analyze接口直接验证字段对应的分析器效果,请求示例如下:

curl -X POST "localhost:9200/products/_analyze?pretty" -H 'Content-Type: application/json' -d'
{
  "field": "name",
  "text": "Toast"
}
'

返回结果中如果出现to、toa、toas、toast等分词结果,就说明你配置的edge_ngram分析器已经正常生效。
如果要确认索引映射是否正确创建,可以执行以下请求查看:

curl -X GET "localhost:9200/products/_mapping?pretty"

返回结果的properties层级下如果存在name字段的对应配置,就说明映射创建成功。

不要使用嵌套在_doc下的映射写法,该写法是Elasticsearch 6.x及更早版本的遗留语法,7.x版本需要额外开启include_type_name参数才能使用,8.x版本已经完全移除该参数和类型定义语法,使用后会直接报错,完全无法适配后续大版本升级。

内容的提问来源于stack exchange,提问作者jsindos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 17:27:04