Elasticsearch 入门到高手的成长阶梯-索引的基本操作(1)
1. 創建索引
Elasticsearch中索引的名稱,必須符合以下要求:
- 字母只能夠是小寫字母
- 不能夠包含特殊字符,如\, /, *, ?, ", <, >, |, ` ` , ,, #等
- 名稱不能夠以英文的中劃線“-”、下劃線“_”以及加號“+”開頭
- 名稱不可以是“.”或“..”
- 名稱的長度否以超過255個字節
?
索引的創建,需要使用PUT方法,以下是一個最簡單的索引創建語句:
| PUT /new_index {} |
這將會創建一個完全使用默認配置為為new_index的索引,索引的主分片數和副本數默認都是1個,這通常是不能夠滿足生產環境真實的業務需求,此時就需要在建立索引之前規劃好需要的主分片數和副本數,然后在建立索引時指定這些參數。
下面建立一個具有5個主分片及每個主分片有一個副本的示例,如下所示:
| PUT /new_index { ????"settings" : { ????????"number_of_shards" : 5, ????????"number_of_replicas" : 1 ????} } |
索引的副本,后面可以根據業務情況,通過API執行動態調整,如下將上面建立的索引的副本數設置為2個:
| PUT /new_index/_settings { ????"number_of_replicas" : 2 } |
索引的主分片數,后面是不可以通過設置動態調整的,只有通過建立新的索引設置新的主分片數,然后重新建立索引的方式達到增加主分片數的方式。因而在建立索引之前,需要根據該庫的業務使用情況,先規劃好主分片數,否則后期就只有通過reindex的方式調整主分片數。
Mapping就是用來指定索引中字段使用的類型,如數字、字符還是日期等,還可以控制字段被索引的方式,如是否需要被分析、使用什么樣的分析器等。
以下示例索引,包含了三個字段,并通過mapping分別給其指定的不同的字段類型:
| PUT /new_index { ????"settings" : { ????????"number_of_shards" : 2, "number_of_replicas" : 2 ????}, ????"mappings" : { ????????"properties" : { ????????????"name" : { "type" : "text" }, "age" : { "type" : "short" }, "birth_date" : { "type" : "date" } ????????} ????} } |
?
2.刪除索引
刪除索引使用DELETE方法,可以一次刪除一個索引,如下:
| DELETE /new_index |
也可以通過通配符*匹配一次刪除多個索引
| DELETE /new_index* |
不過使用通配符刪除,增加了方便性,但同時也增加了危險性,在2.3.1這一章節中,有談到如何控制是否允許在刪除索引的時候使用通配符。
3.獲取索引的信息
獲取索引的信息使用GET方法,會返回這個索引本身的別名、mapping以及相關設置等信息,如下:
| GET /new_index |
響應:
| { ??"new_index" : { ????"aliases" : { }, ????"mappings" : { ??????"properties" : { ????????"age" : { "type" : "short" }, ????????"birth_date" : { "type" : "date" }, ????????"name" : { "type" : "text" } ??????} ????}, ????"settings" : { ??????"index" : { ????????"creation_date" : "1556753099705", ????????"number_of_shards" : "2", ????????"number_of_replicas" : "3", ????????"uuid" : "Vh2Ne7srT7-gh_dQaWlF8Q", ????????"version" : { "created" : "7000099" }, ????????"provided_name" : "new_index" ??????} ????} ??} } |
4.?判斷索引是否存在
當執行文檔索引時,如果目標索引不存在,Elasticsearch會自動創建該索引,通常情況下這是一個好的處理邏輯。但是有時不希望Elasticsearch自動創建不存在的索引,以便于做一些的邏輯上的控制,此時就需要判斷被操作的索引是否存在了,判斷索引是否存在,需要使用HEAD方法,如下:
| HEAD /new_index |
響應:
| 200 - OK |
表示索引存在。
如響應:
| 404 - Not Found |
則表示索引不存在。
5.?開/關索引
當需要對索引做一些關鍵的設置時,如為索引增加自定義分析器,就需要先關閉索引才可以執行。Elasticsearch提供了_open和_close API允許執行對索引的開和關的操作,該操作需要使用POST方法。
5.1 關閉索引
| POST /new_index/_close |
響應
| { ??"acknowledged" : true } |
表示索引關閉成功。
?
5.2 打開索引
| POST /new_index/_open |
響應
| { ??"acknowledged" : true, ??"shards_acknowledged" : true } |
表示索引打開成功。
轉載于:https://www.cnblogs.com/fenglibing/p/11013962.html
總結
以上是生活随笔為你收集整理的Elasticsearch 入门到高手的成长阶梯-索引的基本操作(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【资讯】2017年最好的25大发明,你最
- 下一篇: Apache默认端口80被占用无法启动服