Mapping中的字段一旦設定后,禁止直接修改。因為倒排索引生成后不允許直接修改。需要重新建立新的索引,做reindex操作。
類似數據庫中的表結構定義,主要作用
- 定義所以下的字段名字
- 定義字段的類型
- 定義倒排索引相關的配置(是否被索引?采用的Analyzer)
對新增字段的處理 true false strict
在object下,支持做dynamic的屬性的定義
#寫入文檔,查看 Mapping PUT mapping_test/_doc/1 { "firstName":"Chan", "lastName": "Jackie", "loginDate":"2018-07-24T10:29:48.103Z" } #查看 Mapping文件 GET mapping_test/_mapping #Delete index DELETE mapping_test #dynamic mapping,推斷字段的類型 PUT mapping_test/_doc/1 { "uid" : "123", "isVip" : false, "isAdmin": "true", "age":19, "heigh":180 } #查看 Dynamic GET mapping_test/_mapping #默認Mapping支持dynamic,寫入的文檔中加入新的字段 PUT dynamic_mapping_test/_doc/1 { "newField":"someValue" } #該字段可以被搜索,數據也在_source中出現 POST dynamic_mapping_test/_search { "query":{ "match":{ "newField":"someValue" } } } #修改為dynamic false PUT dynamic_mapping_test/_mapping { "dynamic": false } #新增 anotherField PUT dynamic_mapping_test/_doc/10 { "anotherField":"someValue" } #該字段不可以被搜索,因為dynamic已經被設置為false POST dynamic_mapping_test/_search { "query":{ "match":{ "anotherField":"someValue" } } } get dynamic_mapping_test/_doc/10 #修改為strict PUT dynamic_mapping_test/_mapping { "dynamic": "strict" } #寫入數據出錯,HTTP Code 400 PUT dynamic_mapping_test/_doc/12 { "lastField":"value" } DELETE dynamic_mapping_test