ElasticSearch系列一 基礎知識

2021-10-23 04:14:26 字數 2343 閱讀 9771

索引的管理

elasticsearch基與lucece構建的 分布式的 restful介面的全文搜尋引擎.

天生的分布式:它知道如何管理節點來完成擴充套件和高可用.所以水平擴充套件很方便

只需要加一台機器稍做配置即可.

關鍵字 文章號[出現的頻率] 出現的位置

中國 1[2] 2,4

5[3] 1,5,9

杭州 3[5] 2,6,8,9,12

lucene分別將上面的三列資料放到3個檔案中分別是 詞典檔案 頻率檔案 位置檔案

詞典檔案中的每個關鍵字都保留了指向詞頻檔案和位置檔案的指標,可以通過關鍵字直接找到

她的詞頻和位置.

為了減少索引的空間lucene採用了壓縮演算法 中國人 被分詞成 中國 中國人

中國->2 中國人->2人

拆分後的關鍵字(不可以在拆分的) 搜尋的精度值

可以通過trem查詢精準的搜尋

文字是一段普通的非結構化的文字,被分詞成多個索引詞 放在es的索引中,可以通過單個的索引詞

找到對應的文字.

當儲存文件的時候,該文件只會存在唯一的乙個主分片中,具體在哪個主分片是根據文件的id根據雜湊值進行分配的

分片是單個lucene例項,這是es比較底層的功能,索引其實是指向主分片和副本分片的邏輯空間. 邏輯上數 據存在索引中

物理上資料存在單個lucene的例項中.開發使用的時候我們只關注索引就可以了elasticsearch會自動的管理分片,故障的

轉移,資料的複製. 主分片掛掉副本分片會**主分片. 乙個索引預設有5個主分片(可以修改配置檔案改變預設的個數).

事先預製主分片的數量,主分片的數量一旦確定就不能被改變.每個主分片可以有零個或者多個副本分片,從而保證的集群的

高可用,副本分片的數量是可以改變的.

具有相同結構的文件集合,可以理解成mysql中的表,和表不同的地方是mysql乙個表中只可以存放一種資料型別,index中可以有多個

type(一般推薦乙個index對應乙個type).索引的名稱應該全部小寫

型別是索引的邏輯分割槽,索引是型別的容器.

文件就是存在es中的乙個json格式的字串,就像mysql中的一條記錄,有值也有型別 文件也有field 和 對應的型別的

josn的格式是鍵值對

也可以是陣列格式的

對映是對文件的每個字段型別的定義,可以提前預定義,儲存文件的時候回按照預定的型別來儲存,如果不提前預定義也是可以的

es在存的時候回自動的識別每個欄位的型別.即使預定義了字段的型別,當後期有資料結構改變,有新的字段產生了,新的字段可以不用

自定,es也會自動的識別,這一點跟mongdb很像,這也是非關係型資料庫比關係型資料庫的乙個優點

id是文件儲存的唯一標識,可以自己定義,如果自己不定義在儲存的時候es會自動的生產乙個id(推薦使用es自動生成的id插入的效能高)

/index/type/id

9200作為http協議,主要用於外部通訊

9300作為tcp協議,jar之間就是通過tcp協議通訊

es集群之間是通過9300進行通訊

一般開發人員連線es屬於外部的通訊 建議使用9200埠號更為安全

可以用postman來傳送請求 restful 風格的

put 10.10.50.220:9200/test

}}

get 10.10.50.220:9200/test

, "settings": ,

"provided_name": "test"}}

}}

put 10.10.50.220:9200/test/_settings

}}

delete

10.10.50.220:9200/test

返回

索引的別名類似於mysql中的檢視,可以理解為一種對映的關係

put 10.10.50.220:9200/_aliases}}

刪除別名}}

給多個索引取同樣的別名,當我們查詢這個別名的時候就會查詢到多個索引的內容

}}

get 10.10.50.220:9200/test/_settings

post 10.10.50.220:9200/_analyze

get meadin/_stats

狀態包含的資訊很多 總數 被刪掉的數量 占用的磁碟大小…

post 10.10.50.220:9200/test/_flush

可以沖洗乙個或多個索引,沖洗的作用是將資料儲存到索引儲存中並清除內部的事物日誌,這麼做是為了釋放記憶體空間

es預設是記憶體啟發式演算法來自動觸發沖洗

elasticsearch啟動報錯系列

wget 解壓tar zxvf elasticsearch 6.2.4.tar.gz 在啟動過程 中會遇到這兩個問題 1 max file descriptors 4096 for elasticsearch process is too low,increase to at least 65536...

Elasticsearch系列九 Bool 查詢

案例書籍推薦 bool查詢對應lucenne中的booleanquery,它由乙個或者多個子句組成,match 分詞匹配,下面的例子會對查詢盡心分詞,分為 寶馬 多少 馬力 那麼所有包含這三個詞中的乙個或者多個文件就會被搜尋出來.match phrase 針對上面的例子,乙個文件 我的保時捷也不錯 ...

ElasticSearch系列04 核心概念

一 es配置檔案詳解 elasticsearch.yml es的基本配置檔案 詳見elasticsearch中文.yml logging.yml 日誌配置檔案,es也是使用log4j來記錄日誌的,所以logging.yml裡的設定按普通log4j配置來設定就行了。二 es中的核心概念 cluster...