Mapping(映射->约束)
数据如何存放到索引对象上,需要有一个映射配置,包括:数据类型、是否存储、是否分词等。
Mapping用来定义Document中每个字段的类型,即所使用的分词器、是否索引等属性,非常关键等。创建Mapping 的代码示例如下:
PUT stu (stu类似于MySQL中的数据库名)
{
"mappings": { (可以理解为建表语句 create table关键字)
"_doc":{ (相当于MySQL中表名)
"properties":{ (相当于建表语句中要指定字段及字段类型的关键字)
"id":{ (相当于具体某个字段)
"type":"keyword"("type"相当于要指定字段类型的关键字,"keyword "相当于字段的具体类型)
},
"name":{
"type":"text"
},
"sex":{
"type":"integer"
},
"birth":{
"type":"date"
}
}
}
}
}
PUT stu/_doc/1001
{
"id":"001",
"name":"红红",
"sex":0,
"birth":"1999-01-01"
}
GET stu/_search
输出结果如下:
{
"took" : 9,
"timed_out" : false,
"_shards" : {
"total" : 5, (切片总数)
"successful" :
"skipped" : 0,
"failed" : 0
},
"hits" : { (命中)
"total" : 1, (命中总数一条)
"max_score" : 1.0, (数据在里面存储的时候是有一个评分,这个评分是按照搜索的关键字跟文章的匹配度得来的,如果这个关键字在文章中出现频率较高,这个分数也相应的较大)
"hits" : [
{
"_index" : "stu",
"_type" : "_doc",
"_id" : "1001",
"_score" : 1.0,
"_source" : { (具体的数据)
"id" : "001",
"name" : "红红",
"sex" : 0,
"birth" : "1999-01-01"
}
}
]
}
}