轉載於:Khttps://www.ituring.com.cn/book/tupubarticle/18380
1. 索引相關操作
- 先查詢ES集羣中有哪些索引。
curl localhost:9200/_cat/indices
- 返回空,這時候ES剛剛創建,還沒有索引數據庫。我們先創建一個索引(包括類型,文檔)。
curl -H "Content-Type: application/json" -XPUT localhost:9200/megacorp/employee/1?pretty -d '{
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}'
指定的新文檔的主鍵是1,如果不知道ES會自動分配主鍵。?pretty讓輸出結果顯示更美觀(換行縮進方式),-d指定文檔內容
- 再查詢索引列表:
curl localhost:9200/_cat/indices?v
ES的數據目錄裏也創建了相應的文件
這裏的data是ES集羣的數據所在的根目錄,nodes下是集羣的節點列表,有多少節點就有多少個子目錄,這裏只有一個名稱爲“0”的子目錄,說明nodes下只有一個節點,如果再加一臺服務器就會有“0”和“1”兩個子目錄。
hY7njCY1QZyJMllLA5fbAg是我們這個索引的uuid,裏面有0、1、2、3、4五個子目錄,代表了五個分片。ES默認對每個索引會分配5個分片,每個分片裏數據再進行分段,segments_3就是第一個分段,數據會保存在分段裏。如果是集羣配置,則每個分片根據配置參數會存在多個副本。
當索引中的數據(也就是文檔)量超過原定的分區容量時,無法保存新的數據,這時候ES要進行數據遷移,數據遷移一般是新建一個索引,給這個新索引分配足夠的分區數,再將數據移到新索引中。新索引的創建是很消耗資源的,因此最好在創建一個索引前預先計算好容量需求。
- 刪除索引:
curl -XDELETE localhost:9200/megacorp?pretty
查詢整個索引的情況:
curl -XGET localhost:9200/megacorp?pretty
還可以用_search命令來查詢索引裏的具體文檔,不帶任何參數查詢所有文檔:
curl -XGET localhost:9200/megacorp/_search?pretty
更多見:
Khttps://www.ituring.com.cn/book/tupubarticle/18380