es使用–新建、刪除、增刪改數據

# 進入bin目錄
cd /czz/elsearch/bin
# 後台啟動(不加-d參數則是前台啟動,日誌在控制台)
# 後台啟動日誌如果不配置,在es目錄的logs下面
./elasticsearch -d

裝完本機訪問//127.0.0.1:9200/

{
  "name" : "node-1",
  "cluster_name" : "my-application",
  "cluster_uuid" : "wIk4z-UA***9cusPopZFBw",
  "version" : {
    "number" : "****",
    "build_flavor" : "default",
    "build_type" : "***",
    "build_hash" : "ef48eb35cf30adf****4db14086*1*e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "****",
    "minimum_index_compatibility_version" : "***-beta1"
  },
  "tagline" : "You Know, for Search"
}

看到類似的返回即表示安裝成功

ElasticSearch中的基本概念

索引

① 索引(index)是es對邏輯數據的邏輯存儲,所以它可以分為更小的部分。類似於關係型資料庫的table
② 索引的結構是為快速有效的全文索引準備的,特別是它不存儲原始值。
③ Elasticsearch可以把索引存放在一台機器或者分散在多台伺服器上,每個索引有一或多個分片,每個分片可以有多個副本。

文檔

① 存儲在Elasticsearch中的主要實體叫文檔(document)。相當於關係型資料庫的一行數據
② es的文檔中,相同欄位必須有相同類型。
③ 文檔由多個欄位組成,每個欄位可能多次出現在一個文檔里,這樣的欄位叫多值欄位(multivalued)。 每個欄位的類型,可以是文本、數值、日期等。欄位類型也可以是複雜類型,一個欄位包含其他子文檔或者數 組。

映射

① 所有文檔寫進索引之前都會先進行分析,如何將輸入的文本分割為詞條、哪些詞條又會被過濾,這種行為叫做 映射(mapping)。一般由用戶自己定義規則。

文檔類型

① 在Elasticsearch中,一個索引對象可以存儲很多不同用途的對象。
② 每個文檔可以有不同的結構。
③ 不同的文檔類型不能為相同的屬性設置不同的類型。例如,在同一索引中的所有文檔類型中,一個叫title的欄位必須具有相同的類型。

RESTful API

①創建索引

PUT /czz_test
{
    "settings": {
        "index": {
        "number_of_shards": "1", #分片數,一般單機一片即可
        "number_of_replicas": "0" #副本數
        }
    }
}

②刪除索引

DELETE /czz_test
{
	"acknowledged": true
}

③插入數據
URL規則: POST /{索引}/{類型}/{id}

POST /czz_test/user/1001  #不指定ID插入時會自動生成
{
  "id":1001,
  "name":"張三",
  "age":20,
  "sex":"男"
}

返回:

{
    "_index": "czz_test",
    "_type": "user",
    "_id": "0001",
    "_version": 1,
    "result": "created",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 0,
    "_primary_term": 1
}

④更新數據
在es中數據是不可修改的,但是可以通過覆蓋的方式進行更新,此時_version屬性值會加一

PUT /czz_test/user/1001
{
"id":1001,
"name":"張三",
"age":21,
"sex":"女"
}

如果要僅僅更新某個欄位,需要在url路徑增加_update標記,同時需要將要更新的欄位放在doc裡面,同時_version也會加一

#注意:這裡多了_update標識
POST /czz_test/user/1001/_update
{
"doc":{
"age":23
}
}

⑤刪除數據

DELETE  /czz_test/user/1001   #刪除id為1001的數據
DELETE /czz_test/    #刪除該索引的所有數據
歡迎大家留言,以便於後面的人更快解決問題!另外亦歡迎大家可以關注我的微信公眾號,方便利用零碎時間互相交流。共勉!

路漫漫其修遠兮,吾將上下而求索。。。

Tags: