Elasticsearch 2.20入門篇:基本操作
來自: http://my.oschina.net/secisland/blog/613927
前面我們已經安裝了Elasticsearch ,下一步我們要對Elasticsearch進行一些基本的操作。基本的操作主要有,建索引庫,插入數據,查詢數據,修改數據,刪除數據,刪除索引庫。
備注:如果沒有特殊說明,本文章及后面所有的文章都在2.20版本中進行驗證,其他版本不能確定是否可用。
由于官方文檔都是使用curl來進行實例操作,不太直觀,我更喜歡用圖形化界面來進行驗證。在本文及以后的例子中,我都是已RESTClient3.5來作為操作的工具。下載地址為http://code.fosshub.com/WizToolsorg-RESTClient/downloads,下載的文件是restclient-ui-3.5-jar-with-dependencies.jar。
程序運行: java -jar restclient-ui-3.5-jar-with-dependencies.jar
建索引庫
執行PUT localhost:9200/customer?pretty
返回表示建庫成功:
{ "acknowledged" : true }
說明:http方法PUT,url為localhost:9200/customer?pretty
查詢庫
執行GET http://localhost:9200/_cat/indices?v
返回:
health status index pri rep docs.count docs.deleted store.size pri.store.size
yellow open customer 5 1 0 0 795b 795b
表示已經建成了一個索引customer,主分片是5個,健康度是黃色,狀態是活動,文檔數為0。
插入數據
執行 PUT localhost:9200/customer/external/1?pretty
參數:{ "name": "John Doe" }
注意:Method選擇PUT,Body要設置成application/x-www-form-urlencoded; charset=UTF-8
返回值為:
{ "_index" : "customer", "_type" : "external", "_id" : "1", "_version" : 1, "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "created" : true }
界面如下:
我們再次執行庫查詢,發現文檔數是1:GET http://localhost:9200/_cat/indices?v
health status index pri rep docs.count docs.deleted store.size pri.store.size
yellow open customer 5 1 1 0 3.5kb 3.5kb
查詢數據
執行:GET http://localhost:9200/customer/external/1?pretty
返回:
{ "_index" : "customer", "_type" : "external", "_id" : "1", "_version" : 1, "found" : true, "_source" : { "name" : "John Doe" } }
可以看到_source的內容就是我們剛才插入的數據。
本文由賽克藍德(secisland)原創,轉載請標明作者和出處。
修改數據
執行:POST localhost:9200/customer/external/1/_update?pretty
參數:
{ "doc": { "name": "secisland Doe" } }
返回結果:
{ "_index" : "customer", "_type" : "external", "_id" : "1", "_version" : 2, "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 } }
表示執行成功。
然后我們在查詢一下數據
GET http://localhost:9200/customer/external/1?pretty
{ "_index" : "customer", "_type" : "external", "_id" : "1", "_version" : 2, "found" : true, "_source" : { "name" : "secisland Doe" } }
可以看出文檔的內容由John Doe修改成了secisland Doe。
刪除文檔
執行:DELETE localhost:9200/customer/external/1?pretty
返回:
{ "found" : true, "_index" : "customer", "_type" : "external", "_id" : "1", "_version" : 3, "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 } }
然后我們查詢庫的狀態:
GET http://localhost:9200/_cat/indices?v
返回:
health status index pri rep docs.count docs.deleted store.size pri.store.size
yellow open customer 5 1 0 0 3.6kb 3.6kb
從中可以看出,數據庫中已經沒有記錄了。
刪除索引庫
執行:DELETE localhost:9200/customer?pretty
返回:
{ "acknowledged" : true }
表示刪除成功
然后我們查詢庫的狀態:
GET http://localhost:9200/_cat/indices?v
返回:
health status index pri rep docs.count docs.deleted store.size pri.store.size
從中可以看出已經沒有任何的庫了。
賽克藍德(secisland)后續會逐步對Elasticsearch的最新版本的各項功能進行分析,近請期待。