elasticsearch映射中的元字段
元字段是为了保证系统正常运转的内置字段
_all字段
_all字段是一个特殊的包含所有内容的字段,使用_all字段可以对文档的值进行搜索而不必知道包含所需值的字段名
1 | GET /my_index/_search |
_field_names字段
使用_field_names字段表示文档中每个字段都是非空字段
1 | { |
_ignored字段
6.4新加的字段
1 | { |
_id字段
_id字段表示的是文档的唯一id
_index字段
在多个索引中执行查询时,有时需要添加查询子句来关联特定的索引文档,_index
字段可以匹配包含某个文档的索引,在term或terms查询、聚合、脚本、排序时都可访问_index
中的值
1 | GET index_1,index_2/_search |
_meta字段
_meta是一个可以用来自定义的元数据,可以来存储应用程序的特定元数据
1 | { |
_routing字段
可以使用_rounting字段来进行路由到特定的分片,其公式是
shard_num = hash(_routing) % num_primary_shards
默认情况下_routing
是_id
在搜索时,可以使用路由来进行搜索,只会进行指定路由的搜索,而不会进行所有分片的搜索,减少分片的检索工作,提升性能
1 | GET my_index/_doc/1?routing=user1 |
_source字段
_source
字段中存储的是原始的json数据,字段本身不建立索引,但是会被存储,当执行获取请求时可以返回_source
字段,但是_source
字段会对索引产生存储开销,可以选择禁用_source
字段
1 | { |
但是禁用的话会导致部分功能无法使用,如
- update、update_by_query、reindex等API不可被使用
- 高亮显示
- 重建索引功能
- 调试功能
- 自动修复索引功能
_type字段
6.0版本废弃
_type字段的目的通过类型名加快搜索进度
_uid字段
6.0版本废弃
每个索引都包含_type
和_id
字段,这两个值结合为{type}#{id}作为_uid
_parent
_parent用于指定同一索引中文档的父子关系