Elasticsearch安裝和使用
1. window安裝Elasticsearch
1.前提條件
要理解本教程的所有示例,需要在您的系統上安裝 Elasticsearch。下載針對您的平臺的 最新 Elastic Search 程式包。將該包解壓到一個方便的位置。在 Windows 上,通過以下命令啟動該例項:
在 Windows 上進入es解壓目錄,執行./elasticsearch.bat 執行成功如下 (注意:執行需要jdk1.8及以上)
2.使用 cURL 執行 REST 命令
在 Microsoft Windows 上,我使用 Git Bash shell 來執行 curl。
建立一個索引
Elasticsearch 命令的一般格式是:REST VERBHOST:9200/index/doc-type— 其中 REST VERB 是 PUT、GET 或 DELETE。(使用 cURL -X 動詞字首來明確指定 HTTP 方法。)
要建立一個索引,可在您的 shell 中執行以下命令:
插入一個文件
要在 /music 索引下建立一個型別,可插入一個文件。在第一個示例中,您的文件包含資料(包含一行)“Deck the Halls” 的歌詞,這是一首最初由威爾士詩人 John Ceirog Hughes 於 1885 年編寫的傳統的聖誕歌曲。
要將包含 “Deck the Halls” 的文件插入索引中,可執行以下命令(將該命令和本教程的其他 cURL 命令都鍵入到一行中):
curl -XPUT "http://localhost:9200/music/songs/1" -d
'{ "name": "Deck the Halls", "year": 1885, "lyrics": "Fa la la la la" }'
執行以上命令可能出現異常錯誤:
{“error”:”Content-Type header [application/x-www-form-urlencoded] is not supported”,”status”:406}
這是因為沒有指定內容的格式導致 因此需要在命令裡面指定header 命令改為:
curl -H "Content-Type: application/json" -XPUT "http://localhost:9200/music/songs/1" -d '{"name":"Deck the Halls","year":1885,"lyrics":"Fa la la la la"}'
再次執行 成功 並返回成功資訊
{"_index":"music","_type":"songs","_id":"2",
"_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}
<—– 注意—–>
這裡的music為索引 而songs為型別 一個索引下面只能為一個型別
下面的命令可以列出每個 Index 所包含的 Type
curl 'localhost:9200/_mapping?pretty=true'
檢視文件
要檢視該文件,可使用簡單的 GET 命令:
curl -XGET "http://localhost:9200/music/songs/1"
Elasticsearch 使用您之前 PUT 進索引中的 JSON 內容作為響應:
{"_index":"music","_type":"songs","_id":"1","_version":1,
"found":true,"_source":{ "name": "Deck the Halls", "year": 1885, "lyrics": "Fa la la la la" }}
更新文件
es的更新命令和插入命令一致
curl -H "Content-Type: application/json"
-XPUT "http://localhost:9200/music/songs/1" -d
'{"name":"Deck the Halls","year": 1886,"lyrics":"Fa la la la la" }'
這裡指出了需要更新的文件的id因此會返回 更新成功。
{"_index":"music","_type":"songs","_id":"2","_version":2,
"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1}
刪除文件##
刪除文件使用 -XDELETE
curl -XDELETE "http://localhost:9200/music/songs/1"
返回資訊:
{"_index":"music","_type":"songs","_id":"1","_version":3,
"result":"deleted","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":2,"_primary_term":1}
檢視索引
curl -X GET 'http://localhost:9200/_cat/indices?v'
curl -X POST "http://localhost:9200/music/_open" 開啟索引 關閉索引 (_close)
curl -X GET 'http://localhost:9200/_cat/indices?v' 檢視索引
curl 'localhost:9200/_mapping?pretty=true' 列出每個 Index 所包含的 Type
curl 'localhost:9200/accounts/person/_search' 檢視某個索引下全部記錄