課程大綱
1、root object
就是某個type對應的mapping json,包括了properties,metadata(_id,_source,_type),settings(analyzer),其他settings(比如include_in_all)
PUT /my_index
{
"mappings": {
"my_type": {
"properties": {}
}
}
}
2、properties
type,index,analyzer
PUT /my_index/_mapping/my_type
{
"properties": {
"title": {
"type": "text"
}
}
}
3、_source
好處
(1)查詢的時候,直接可以拿到完整的document,不需要先拿document id,再傳送一次請求拿document
(2)partial update基於_source實現
(3)reindex時,直接基於_source實現,不需要從資料庫(或者其他外部儲存)查詢資料再修改
(4)可以基於_source定製返回field
(5)debug query更容易,因為可以直接看到_source
如果不需要上述好處,可以禁用_source
PUT /my_index/_mapping/my_type2
{
"_source": {"enabled": false}
}
4、_all
將所有field打包在一起,作為一個_all field,建立索引。沒指定任何field進行搜尋時,就是使用_all field在搜尋。
PUT /my_index/_mapping/my_type3
{
"_all": {"enabled": false}
}
也可以在field級別設定include_in_all field,設定是否要將field的值包含在_all field中
PUT /my_index/_mapping/my_type4
{
"properties": {
"my_field": {
"type": "text",
"include_in_all": false
}
}
}
5、標識性metadata
_index,_type,_id