ElasticSearch從不懂到會用1—安裝篇


       連續加班近一個多月,項目終於告一段落了,也騰出時間寫一寫項目中用到的東西。在這個項目中,我負責的主要是多種業務場景下的數據查詢和搜索,其中搜索用到了ElasticSearch搜索引擎。下面主要圍繞ElasticSearch的安裝、項目中的使用方式以及踩過的一些坑進行總結。(本博客主要針對ElasticSearch的使用,對一些原理不做過多解釋)

1.ElasticSearch是什么

  ElasticSearch是一個基於Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基於RESTful web接口。說的通俗一點,就是是一個比較好、用起來也比較方便的搜索服務器。一般項目中如果用到關鍵字搜索,就可以將數據存入到ElasticSearch,搜索效率比較高。(下面ElasticSearch簡稱ES)

  在關系型數據庫中,一般有數據庫、表、行、和列的概念。在ES中有:  

    索引index(類似於數據庫)

    類型type(類似於表的概念,在ES7之后,就沒有了type)、

    document(類似於一行記錄)

    feild字段,每個document的內容都是一些字段及對應的值。(字段相當於數據庫的列)

  對於存入ES的數據,ES會進行分詞(字段是否分詞,采用什么分詞器分詞在添加映射的時候——也就是創建type結構的時候指定)。

2.ElasticSearch安裝

   首先說明:

    在安裝ES的時候,首先強調一點,ES啟動的時候不能使用root用戶啟動,如果拿root用戶啟動失敗了,則刪除logs目錄,在重新切換到普通用戶啟動即可。下面會強調這個問題。

      此外,ES是Java開發的時候,所以安裝ES之前,需要先安裝JDK。

  (1)下載安裝包

  在官網下載ES的安裝包:https://www.elastic.co/downloads/elasticsearch

  將安裝包放在linux下的一個目錄下進行解壓,我選擇的是opt目錄:

  tar -zxvf elasticsearch-7.0.0-linux-x86_64.tar.gz

  cd elasticsearch-7.0.0

  cd config

  (2)編輯config目錄下的elasticsearch.yml

  修改以下幾個選項:

  cluster.name: study-es

  node.name:  node01

  network.host: 192.168.1.8

  http.port: 9200

  discovery.zen.ping.timeout:120s #設置集群中自動發現其他節點時ping連接的超時時間

  discovery.zen.ping.multicast.enabled:false #設置是否打開多播發現節點

  discovery.zen.ping.unicast.hosts:["192.168.1.8:9200","192.168.1.9:9200","192.168.1.10:9200"] 

  (3)將配置分發到其他節點.

  scp -r elasticsearch-7.0.0/ root@192.168.1.9:`pwd`

  scp -r elasticsearch-7.0.0/ root@192.168.1.10:`pwd`

  分發之后,去對應的節點修改個別配置

  (4)普通用戶啟動es

  如果是root用戶對ES進行的安裝和配置,那么切換到普通用戶啟動ES一般沒有權限,所以需要將ES相關的文件給普通用戶授權。

  • ll命令查看ES,結果如下:

  

    它和它下面的文件夾和目錄都屬於root用戶和root用戶組。

  • 在root登錄的情況下改變es文件夾和它下面的文件的屬主和屬組,以便普通用戶有執行權限

    我的linux上有test用戶,test用戶也屬於test用戶組。

    chown -R test:test elasticsearch-7.0.0/

  ll命令查看:

       

su test  //切換到test用戶
cd bin .
/elasticsearch

  在瀏覽器查看,輸入地址192.168.1.8:9200

3.中文分詞插件的安裝

  下載分詞zip包,如果下載源碼包還需要自己安裝,下載地址:https://github.com/medcl/elasticsearch-analysis-ik/releases

  (1)進入elasticsearch安裝目錄下的plugins目錄,創建ik目錄

cd elasticsearch-7.0.0/plugins/
mkdir ik

  (2)解壓分詞包,並拷貝到ik目錄下

unzip elasticsearch-analysis-ik-7.0.0.zip #解壓出來的目錄叫elasticsearch cd elasticsearch #進入剛剛解壓出來的elasticsearch目錄 cp -r ./* /opt/elasticsearch-7.0.0/plugins/ik/ #拷貝當前目錄所有子目錄和文件到elasticsearch的ik目錄下

  (3)重新啟動ES

  分詞器安裝可參考鏈接:https://www.jianshu.com/p/1c4d489f18fe

 

 

ES安裝先說到這。后面會對 ElasticSearch的使用(包括restful api 、Java API、ElasticSearch-Sql)以及踩過的一些坑進行總結。這些坑包括下面幾個問題,暫時只想起來這么多:

  搜索時的大小寫問題

  wildcard模糊查詢:*和?

  sql語句的and or 等的優先級問題 

  post請求中文查詢亂碼問題

  分頁查詢的時候,如果頁數特別大,查詢效率會很低的問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM