目录
文档
文档的形式——Json形式
其中,card是一个复杂对象,嵌套的Card对象。
{
"_index": "haoke",
"_type": "user",
"_id": "1005",
"_version": 1,
"_score": 1,
"_source": {
"id": 1005,
"name": "孙七",
"age": 37,
"sex": "女",
"card": {
"card_number": "123456789"
}
}
}
元数据(metadata)
一个文档不只有数据。它还包含了元数据(metadata)——关于文档的信息。三个必须的元数据节点是:
这里Id需要尤为注意
id仅仅是一个字符串,它与 _index 和 _type 组合时,就可以在Elasticsearch中唯一标识一个文档。当创建一个
文档,你可以自定义 _id ,也可以让Elasticsearch帮你自动生成(32位长度)。
判断文档是否存在
如果我们只需要判断文档是否存在,而不是查询文档内容,那么可以这样
映射
映射是定义文档的过程,文档包含哪些字段,这些字段是否保存,是否索引,是否分词等等
类型说明
前面我们创建的索引以及插入文档,都是由Elasticsearch进行自动判断类型,有些时候我们是需要进行明确字段类型的,否则,自动判断的类型和实际需求是不相符的。
创建映射
- 语法
PUT /索引库名/_mapping/类型名称
{
"properties": {
"字段名": {
"type": "类型",
"index": true,
"store": true,
"analyzer": "分词器"
}
}
}
- 含义
类型名称:就是前面将的type的概念,类似于数据库中的不同表 字段名:任意填写 ,可以指定许多属性,例如:
type:类型,可以是text、long、short、date、integer、object等
index:是否索引,默认为true
store:是否存储,默认为false
analyzer:分词器,这里的ik_max_word
即使用ik分词器
- 请求结果
PUT heima/_mapping/goods
{
"properties": {
"title": {
"type": "text",
"analyzer": "ik_max_word"
},
"images": {
"type": "keyword",
"index": "false"
},
"price": {
"type": "float"
}
}
}
- 响应结果
{
"acknowledged": true
}
查看映射
语法
GET /索引库名/_mapping
示例
GET /heima/_mapping
响应
{
"heima": {
"mappings": {
"goods": {
"properties": {
"images": {
"type": "keyword",
"index": false
},
"price": {
"type": "float"
},
"title": {
"type": "text",
"analyzer": "ik_max_word"
}
}
}
}
}
}