这篇文章是Elasticsearch基本概念与安装的内容继续。
主要是Index和Document的CRUD操作,建议大家先去找下REST的相关内容阅读下,看下面的内容会更加轻松。
Index的操作
上篇文章对于基本概念我已经解释过了,这里再重复下,向ES添加数据的过程称为Index。当我们把数据输入ES时,数据就会被放到Lucene索引中。因为ES使用Lucene索引来存储和检索数据。当然我们不需要知道其中内部Lucene怎么运作的,但是它会帮助你了解ES的工作原理。
前面也提到过了ES的操作都是REST API。
使用PUT请求新建Index
PUT:
PUT http://localhost:9200/goods
当操作成功后会返回
{ "acknowledged":true, "shards_acknowledged":true }
相对应的,我们可以使用DELETE删除Index:
DELETE http://localhost:9200/goods
Document的操作
当Index创建完毕后就可以向里面添加Document了,这次我们使用POST做一次批量的演示:
POST http://localhost:9200/goods/_bulk //POST数据 { "index":{ "_index":"goods", "_type":"goods", "_id":"1" } } { "name":"XIAOMI 8", "description":"the newest XIAOMI Production", "price":"1998", "sku":"50", "status":"1", "catgory":["Digital", "phone"], "ranking":"3" } { "index":{ "_index":"goods", "_type":"goods", "_id":"2" } } { "name":"Mate 9 Pro", "description":"the newest HUAWEI Production", "price":"1888", "sku":"30", "status":"1", "catgory":["Digital", "phone"], "ranking":"2" }
成功后ES会返回:
{ "took":154, "errors":false,"items":[ { "index":{ "_index":"goods", "_type":"goods", "_id":"1", "_version":1, "_shards":{ "total":2, "successful":1, "failed":0 }, "status":201 } }, { "index":{ "_index":"goods", "_type":"goods", "_id":"2", "_version":1, "_shards":{ "total":2, "successful":1, "failed":0 }, "status":201 } } ] }
注意,这里的_type就是之前文章中介绍的Type类型,用来对Document定义组别的。
这时候在商品Index里我们就有数据了,就可以进行查询的操作了,当我们想要查看某个Documnet的时候,可以GET,比如想要获取ID为1的数据:
GET http://localhost:9200/goods/goods/1
GET的路由规则是按照/Index/Type/ID来执行的。当执行成功后就会返回数据:
{ "_index" : "goods", "_type" : "goods", "_id" : "1", "_version" : 1, "found" : true, "_source" : { ... ... ... } }
如果没有找到,则返回的found字段是false。
同样的也有删除,也是使用DELETE:
DELETE http://localhost:9200/goods/goods/1
最后再讲下更新使用PUT请求:
PUT http://localhost:9200/goods/goods/1 { "price":"3888" }'
需求修改哪个字段就填入该字段。
这次的内容到这里就结束了,下篇文章就要进入重点了:ES的查询功能。
版权所属,如需转载,请注明出处:搜闲鱼