一、创建索引和mapping
//id 字段自增id
//good_sn 商品SKU
//good_name 商品名称
//good_introduction 商品简介
//good_descript 商品详情
PUT http://IP:9200/shop
{
"mappings":{
"good":{
"properties":{
"id":{
"type":"long",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"good_sn":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"good_name":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"good_introduction":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
},
"good_descript":{
"type":"text",
"fields":{
"keyword":{
"type":"keyword",
"ignore_above":256
}
}
}
}
}
}
}
页面效果如下,说明创建成功:
二、插入数据
POST http://IP:9200/shop/good/id
{
"id":"1",
"good_sn":"4217251852947",
"good_name":"【12期免息 再减500元】Apple/苹果 iPhone 11全网通4G 超广角拍照手机苏宁易购官方store 苹果11 ",
"good_introduction":"选套餐一免费享更多好礼",
"good_descript":"商品详细信息"
}
页面效果如下,说明插入成功:
三、查询数据
GET http://IP:9200/shop/good/_search
{
"query":{
"match":{
"id":"1"
}
}
}
页面效果如下,说明查询成功:
返回参数说明:
- took:是查询花费的时间,毫秒单位。
- time_out:标识查询是否超时。
- _shards:描述了查询分片的信息,查询了多少个分片、成功的分片数量、失败的分片数量等。
- hits:搜索的结果
- total: 代表当前ES里符合条件的总数只有一条数据
- _index:我们指定查询的索引(类似数据库的某个库)。
- _type:我们指定查询的文档(类似数据库的某张表)
- _id:查询指定的id。
- _source:查询返回数据。
四、更新数据
PUT http://IP:9200/shop/good/1
{
"id":"1",
"good_name":"【12期免息 再减600元】Apple/苹果 iPhone 11全网通4G 超广角拍照手机苏宁易购官方store 苹果11"
}
再次查询时,发现数据已更新,说明更新成功
注意:未上传的商品字段已经被删除了
五、删除数据
DELETE http://IP:9200/shop/good/1
页面效果如下,说明数据删除成功:
再次查询时,发现查询不到数据
六、删除索引
DELETE http://IP:9200/shop
页面效果如下,说明索引删除成功:
七、其他知识
1. 能否更改 Mapping 字段类型
- 新增字段情况,Dynamic 设置为 true,带有新字段的文档写入,Mapping 会更新。Dynamic 设置为 false,Mapping 不被更新,新增字段不会被索引。Dynamic 设置为 Strict,带有新字段的文档写入会直接报错。
- 对已有字段并且存在数据情况,不支持修改字段定义,因为 ES 通过 Lucene 生成倒排索引,一旦生成就不许与修改
- 如果实在需要修改可以通过 Reindex Api 重建索引
PUT http://IP:9200/shop/_mapping
{
"dynamic":"true"
}
2. 关闭索引
如果索引被关闭,那么关于这个索引的所有读写操作都会被阻断。索引的关闭也很简单,请求方式如下:
POST http://IP:9200/shop/_close
3. 打开索引
与关闭索引相对应的是打开索引,请求方式如下:
POST http://IP:9200/shop/_open
4. 冻结索引
冻结索引和关闭索引类似,关闭索引是既不能读,也不能写。而冻结索引是可以读,但是不能写。
冻结索引的请求方式如下:
POST http://IP:9200/shop/_freeze
5. 解冻索引
与冻结索引对应的是解冻索引,请求方式如下:
POST http://IP:9200/shop/_unfreeze