1. 程式人生 > 其它 >ElasticSearch7.3 學習之採用restful風格對索引的增刪改查

ElasticSearch7.3 學習之採用restful風格對索引的增刪改查

1、 為什麼需要手動建立索引

直接put資料 PUT index/_doc/1,es會自動生成索引,並建立動態對映dynamic mapping。這樣的話很大可能與實際的需求不服,在實際的應用上,我們需要自己手動建立索引和對映,這也是為了更好地管理索引。就像資料庫的建表語句一樣。

2、 建立索引

建立索引的語法

PUT /index
{
    "settings": { ... any settings ... },
    "mappings": {
       "properties" : {
            "field1" : { "type" : "text" }
        }
    },
    
"aliases": { "default_index": {} } }

舉例:

PUT /my_index
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "field1": {
        "type": "text"
      },
      "field2": {
        "type": "text"
      }
    }
  },
  "aliases": {
    
"default_index": {} } }

結果:

其中的aliases含義是索引別名,可以和資料庫中的別名類比記憶

插入資料

POST /my_index/_doc/1
{
    "field1":"java",
    "field2":"js"
}

查詢資料的話兩種方式都可以查到

GET /my_index/_doc/1

GET /default_index/_doc/1

返回的結果一樣:

{
  "_index" : "my_index",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 1,
  
"_primary_term" : 1, "found" : true, "_source" : { "field1" : "java", "field2" : "js" } }

3、查詢索引

GET /my_index/_mapping
GET /my_index/_setting

4、修改索引

比如說修改索引中的副本數

PUT /my_index/_settings
{
  "index": {
    "number_of_replicas": 2
  }
}

再次查詢得到的結果如下:

5、刪除索引

刪除索引有好幾種方式,指定刪除某一個,刪除某兩個,根據匹配來進行刪除,或者直接刪除全部索引。

DELETE /my_index

DELETE /index_one,index_two

DELETE /index_*

DELETE /_all

為了安全起見,防止惡意刪除索引,生產上可以設定elasticsearch.yml中以下配置,讓刪除時必須指定索引名:

action.destructive_requires_name: true