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

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

1.ElasticSearch是什麼linux

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

  在關係型數據庫中,通常有數據庫、表、行、和列的概念。在ES中有:  github

    索引index(相似於數據庫)web

    類型type(相似於表的概念,在ES7以後,就沒有了type)、sql

    document(相似於一行記錄)數據庫

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

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

2.ElasticSearch安裝bash

   首先說明:

    在安裝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請求中文查詢亂碼問題

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

相關文章
相關標籤/搜索