看這篇文章,終於會用Elasticsearch了

加關注,私信“專案課程”,即可獲得高併發分散式電商專案以及適合初學者的網盤專案課程影片以及原始碼哦[狗頭]

前言

Elasticsearch作為主流的搜尋引擎,在分散式系統中佔據著不可或缺的地位,文章重點介紹它的安裝和使用。

Elasticsearch介紹

Elasticsearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。

Elasticsearch是用Java語言開發的,並作為Apache許可條款下的開放原始碼釋出,是一種流行的企業級搜尋引擎。

Elasticsearch用於雲計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便。

官網:https://www。elastic。co/cn/elasticsearch/

Elasticsearch概念

Elasticsearch 可以理解成一種資料庫,類似MySQL,也可以對資料進行增刪改查,它優勢是搜尋速度快,如果表中有上億級別的資料,使用ES檢索資料要遠遠快於傳統的關係型資料庫。

把ES中的概念和MySQL對比,就比較好理解了。

看這篇文章,終於會用Elasticsearch了

Elasticsearch安裝

Elasticsearch不允許使用root使用者,所以需要新建使用者新建使用者

useradd xray

配置密碼

passwd xray

切換使用者

su xray

上傳和解壓

tar -zxvf elasticsearch-6。2。4。tar。gz

重新命名目錄

mv elasticsearch-6。2。4/ elasticsearch

進入目錄

cd elasticsearch

新建目錄

mkdir datamkdir logs

修改配置

cd configvi elasticsearch。yml

新增內容path。data: /usr/local/elasticsearch/data # 資料目錄位置path。logs: /usr/local/elasticsearch/logs # 日誌目錄位置修改繫結的ipnetwork。host: 0。0。0。0 # 繫結到0。0。0。0,允許任何ip來訪問

其他可配置資訊:

看這篇文章,終於會用Elasticsearch了

執行

。/bin/elasticsearch

可能的錯誤:

錯誤1:核心過低

看這篇文章,終於會用Elasticsearch了

在elasticsearch。yml下面新增配置:

bootstrap。system_call_filter: false

禁用這個外掛,然後重啟

錯誤2:檔案許可權不足

看這篇文章,終於會用Elasticsearch了

[1]max file descriptors…是檔案許可權不足

用root登入,然後修改配置檔案:

vim /etc/security/limits。conf

新增下面的內容:

* soft nofile 65536* hard nofile 131072* soft nproc 4096* hard nproc 4096

錯誤3:執行緒數不足[2]: max number of threads … 是執行緒數不足修改配置:

vim /etc/security/limits。d/20-nproc。conf

修改下面的內容:

* soft nproc 1024改為:* soft nproc 4096

錯誤4:程序虛擬記憶體不足

[3]: max virtual memory… 程序虛擬記憶體不足

修改配置檔案:

vim /etc/sysctl。conf

新增下面內容:

vm。max_map_count=655360

然後執行命令:

sysctl -p

再次啟動ES

看這篇文章,終於會用Elasticsearch了

兩個埠:9300:叢集節點間通訊介面9200:客戶端訪問介面

我們在瀏覽器中訪問

看這篇文章,終於會用Elasticsearch了

Kibana安裝

Kibana是ES的客戶端工具需要先安裝nodejs

tar -vxf node-v12。18。2-linux-x64。tar。xzmv node-v12。18。2-linux-x64 nodejsln -s /usr/local/nodejs/bin/node /usr/local/binln -s /usr/local/nodejs/bin/npm /usr/local/binnode -v

解壓kibana

tar -vxf kibana-6。2。4-linux-x86_64。tar。gzmv kibana-6。2。4-linux-x86_64 kibana

修改 config/kibana。yml 新增

server。host: “0。0。0。0”elasticsearch。url: “http://機器IP:9200”

啟動

。/bin/kibana

kibana的埠是5601,在瀏覽器開啟後,可以測試查詢

看這篇文章,終於會用Elasticsearch了

安裝分詞器

分詞器能把一個字串拆分成多個單詞,搜尋時再按每個單詞分別索引,這樣能大大提高搜尋效率。如:“我是中國人”拆分為“我”、“是”、“中國”、“國人”、“中國人”。

安裝步驟:下載分詞器檔案,版本和ES版本一致

如: elasticsearch-analysis-ik-6。2。4。zip

上傳到elasticsearch/plugins目錄中解壓

unzip elasticsearch-analysis-ik-6。2。4。zip

使用kibana測試

看這篇文章,終於會用Elasticsearch了

Elasticsearch基本操作

建立索引

PUT /test

看這篇文章,終於會用Elasticsearch了

建立型別並進行對映

PUT /test/_mapping/student{ “properties”: { “name” :{ “type”: “text”, “analyzer”: “ik_max_word” }, “gender”:{ “type”: “keyword” }, “age”:{ “type”: “integer” } }}

新增資料

POST /test/student{ “name”:“張三三”, “gender”:“男”, “age”:“20”}

看這篇文章,終於會用Elasticsearch了

修改

PUT /test/student/B6eRR3cBeDxKxs3sWYow{ “name”:“張三”, “age”:“33”, “gender”:“F”}

看這篇文章,終於會用Elasticsearch了

刪除

GET /test/student/_search/B6eRR3cBeDxKxs3sWYow-

看這篇文章,終於會用Elasticsearch了

查詢

GET /test/student/_search

看這篇文章,終於會用Elasticsearch了