Elasticsearch能否新增与_id、_source等标准顶层字段平行的自定义字段
结论
不可以,Elasticsearch 不支持用户自定义新增和 _id、_type、_source 这类标准元字段平级的顶层字段。
原因说明
所有以_开头的顶层字段都是 Elasticsearch 内置的系统元字段,由ES内核逻辑统一维护管理,官方没有开放自定义新增这类顶层元字段的能力。你尝试写入的自定义顶层_location字段,要么会被ES直接忽略,要么会触发写入报错,无法实现你示例中期望的存储结构。
替代方案
如果需要存储类似地理位置这类额外的属性,可选择两种常用实现方式:
- 存储在
_source内部,可通过查询时配置script_fields或者字段别名,让返回结果中该字段和内置元字段平级展示,不影响使用体验。 - 如果是地理位置类的属性,可直接使用ES内置的
_geo_point元字段存储,无需自定义新的顶层字段。
内容的提问来源于stack exchange,提问作者Cy-Phy
相关产品推荐
相关产品推荐

