root object
就是某个type对应的mapping json,包括了properties,metadata(_id,_source,_type), settings(analyzer),其他settings(比如include_in_all)
1 | PUT /index |
properties
主要包括了各个field的数据类型,分不分词,用哪个分词器等.
_source
_source的好处:
- 查询的时候,可以直接拿到完整的document,不需要先拿到document id,再发送一起请求拿document.
- partial update是基于_source实现的.
- reindex时,直接基于_source实现,不需要从数据库(或者其他外部存储)查询数据再修改.
- 可以基于_source定制返回field.
- debug query更容易,因为可以直接看到_source.
如果不需要用到上面这些的话,可以禁用_source1
2
3
4PUT /index/_mapping/type
{
"_source": {"enabled": false}
}
_all
_all我们之前有详细介绍过,就是将所有field打包在一起,作为一个_all field,建立索引,没指定任何field进行搜索的时候,就是使用_all field在搜索.
当然如果不需要用到的话也可以设置关闭1
2
3
4PUT /index/_mapping/type
{
"_all": {"enabled": false}
}
也可以在field级别设置include_in_all field,设置是否将filed的值包含在_all中1
2
3
4
5
6
7
8
9PUT /index/_mapping/type
{
"properties": {
"field": {
"type": "text",
"include_in_all": false
}
}
}
标识性metadata
包括_index,_type,_id