ES 7 8 速成筆記 上

2022-01-31 09:15:57 字數 2848 閱讀 9097

終端命令列直接輸入

./elasticsearch-7.8.0/bin/elasticsearch

即可啟動,停止的話直接kill程序。

啟動成功後,可以瀏覽http://localhost:9200/,如果看出類似下面的輸出,就表示ok了

,

"tagline" : "you know, for search"

}

二、安裝瀏覽器外掛程式(可選)

google瀏覽器上建議安裝2個外掛程式:

有了這2個後,可以直觀的在瀏覽器中用視覺化方式管理es。這2個外掛程式的效果如下:

可以看出es集群的健康狀況,索引基本資訊,包括瀏覽索引裡的資料。

三、基本操作

3.1 建立索引

es中的索引類似mysql中的table,是用來儲存資料的基本單位。

put http://localhost:9200/cnblogs (注:cnblogs為要建立的索引名,可自行命名)

,

"blog_title": ,

"blog_category": ,

"blog_content": }},

"settings": }}

3.2 刪除索引 

delete http://localhost:9200/cnblogs (注:cnblogs為要刪除的索引名)

用postman之類的,發一條delete操作即可,更多索引相關的操作,可參考 

3.3 新增單條記錄

注:在index中建立的資料,準確來講,es中稱為document。

注1:上述語句執行後,該自動生成乙個id,在返回結果中也能看到(即:下面的_id欄位)

,

"_seq_no": 1,

"_primary_term": 1

}

如果連續post相同的內容,將生成多條內容一樣的記錄(即:重覆記錄)

當然,也可以在post時,就指定id,比如:

http://localhost:9200/cnblogs/_doc/123 (最後的123即為id)

,

"_seq_no": 6,

"_primary_term": 1

}

返回結果也能看到"_id":"123",如果重複提交1次,es會自動認為是對_id:123的記錄做update,從返回結果也能看出來:

,

"_seq_no": 7,

"_primary_term": 1

}

這時"result":"updated"已經不是再created,而且_version也變成了2。 更多建立文件的細節,可以參考 

3.4 批量新增記錄

從mysql向es遷移資料時,批量操作很有用,es中稱為bulk操作,比如我們要向cnblogs,1次新增多條記錄:

}注2:最後要有乙個空行(即:\n)

操作完成後,可以看到多了2行資料:

更多bulk操作的細節,可參考

3.5 刪除記錄

刪除單條記錄 delete http://localhost:9200/cnblogs/_doc/1 (最後的值為_id的值)

當然也可以用剛學到的bulk操作,批量刪除

3.6 更新記錄

更新操作跟mysql中的有很大區別,新手容易踩坑,先建立一條記錄,方便後面講解

完成後,就能看到這條記錄了

接下來,改下json內容,變成:

返回結果:

,

"_seq_no": 3,

"_primary_term": 1

}

提示更新完成,但是看記錄,會發現其它欄位值全被清掉了!

也就是說,如果我們只想更新某個欄位的值,這樣是不行的,必須先從es中查出舊記錄,然後所有字段值全賦上舊值,再更新指定字段,做全量提交才能達到預期,所以不推薦這種方法。

正確方法:

update細節可參考

Python學習筆記(7 8)

python3 中有六個標準的資料型別 number 數字 string 字串 list 列表 tuple 元組 set 集合 dictionary 字典 python3 的六個標準資料型別中 不可變資料 3 個 number 數字 string 字串 tuple 元組 可變資料 3 個 list ...

Tensorflow速成學習筆記 二

根據tensorflow實戰google深度學習框架的樣例,詳細註解簡單神經網路 的各部分作用如下 import tensorflow as tf from numpy.random import randomstate 定義訓練資料batch的大小 batch size 8 定義神經網路的引數,每...

蘋果開發 筆記(78)鍵盤

文字經常需要和鍵盤打交道,現在記錄一下初步的鍵盤相關的知識點。鍵盤出現和消失促發兩個訊息。uikeyboardwillshownotification 出現通知 uikeyboardwillhidenotification 隱藏通知 nsnotificationcenter 監聽兩個訊息即可捕捉到鍵...