Elasticsearch中文搜索環(huán)境搭建

Elasticsearch是一個(gè)建立在全文搜索引擎 Apache Lucene? 基礎(chǔ)上的搜索引擎,功能強(qiáng)大,最近剛好要研究搜索這一塊,簡要記錄備日后查閱

  1. 安裝Java JDK,由于Lucene是用Java開發(fā)的,所以需要安裝JVM

    • JAVA官網(wǎng)下載JDK安裝包,注意,由于后面我們安裝中文分詞插件需要裝maven,所以安裝的必須是JDK包而不是JRE

    • 通過RPM -ivh 命令安裝下好的安裝包

    • 編輯配置文件,將安裝好的java路徑加入環(huán)境變量

        #vim /etc/profile
      

      在里面添加如下內(nèi)容

       export JAVA_HOME=/usr/java/your_jdk_directory(修改成對(duì)應(yīng)的路徑)
        export JAVA_BIN=$JAVA_HOME/bin
        export PATH=$PATH:$JAVA_HOME/bin
        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
        export JAVA_HOME JAVA_BIN PATH CLASSPATH
      

      使配置文件生效

        #source /etc/profile 或 #. /etc/profile  (也可關(guān)閉終端重新登陸)
      

      如果出現(xiàn)以下類似的輸出,證明安裝成功

        #java -version
        java version "1.8.0_66"
        Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
        Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
      
  2. 安裝elasticsearch

    • elasticsearch官網(wǎng)下載elasticsearch安裝包

    • 將安裝包放于要安裝的目錄,解壓

        $unzip elasticsearch-2.3.2.zip
      
    • 啟動(dòng)看是否成功,注意不能用root用戶

        $bin/elasticsearch
      
  3. 安裝Marvel管理插件(選裝)

    • 先從Kibana下載界面下載Kibana

    • 解壓kibana,并修改配置文件,將elasticsearch路徑指向上一步elasticsearch的訪問路徑,默認(rèn)為 http://localhost:9200

    • 安裝Marvel

        $bin/plugin install license
        $bin/plugin install marvel-agent
        $bin/kibana —install elasticsearch/marvel/latest 
        $bin/elasticsearch  
        $bin/kibana     
      
  4. 安裝中文分詞插件elasticsearch-analysis-ik

    • 若未安裝maven,需要先安裝maven,可通過yum install maven, brew install maven等安裝,也可下載源碼解壓后將bin目錄加入PATH環(huán)境變量安裝

    • github上下載elasticsearch-analysis-ik源碼, 再通過maven打包,并將打好的包拷貝到plugins/ik目錄下,解壓

        $mvn package
        $cp target/releases/elasticsearch-analysis-ik-{version}.zip to your-es-root/plugins/ik
        $unzip target/releases/elasticsearch-analysis-ik-{version}.zip
        $bin/elasticsearch
      
    • 簡單驗(yàn)證分詞插件是否安裝成功

      新建索引

        $curl -XPUT http://localhost:9200/index
      

      配置分詞mapping

        $curl -XPOST http://localhost:9200/index/fulltext/_mapping -d'
        {
            "fulltext": {
                "_all": {
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_max_word",
                    "term_vector": "no",
                    "store": "false"
                },
                "properties": {
                    "content": {
                        "type": "string",
                        "store": "no",
                        "term_vector": "with_positions_offsets",
                        "analyzer": "ik_max_word",
                        "search_analyzer": "ik_max_word",
                        "include_in_all": "true",
                        "boost": 8
                    }
                }
            }
        }'
      

      加入文檔

        $curl -XPOST http://localhost:9200/index/fulltext/1 -d'{"content":"美國留給伊拉克的是個(gè)爛攤子嗎"}'
        $curl -XPOST http://localhost:9200/index/fulltext/2 -d'{"content":"公安部:各地校車將享最高路權(quán)"}'
      

      搜索

        $curl -XPOST http://localhost:9200/index/fulltext/_search  -d'
        {
            "query" : { "term" : { "content" : "美國" }},
            "highlight" : {
                "pre_tags" : ["<tag1>", "<tag2>"],
                "post_tags" : ["</tag1>", "</tag2>"],
                "fields" : {
                    "content" : {}
                }
            }
        }'
      

      如果有搜索結(jié)果,證明中文分詞插件已經(jīng)安裝成功

  5. 安裝相應(yīng)的客戶端api,如golang客戶端api

     go get gopkg.in/olivere/elastic.v3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容