solr企業級搜索引擎的安裝與配置

1、solr的概念和功能git

一、solr是將整個索引操做功能封裝好了的搜索引擎系統(企業級搜索引擎產品)github

二、solr能夠部署到單獨的服務器上(WEB服務),它能夠提供服務,咱們的業務系統就只要發送請求,接收響應便可,下降了業務系統的負載web

三、solr部署在專門的服務器上,它的索引庫就不會受業務系統服務器存儲空間的限制apache

四、solr支持分佈式集羣,索引服務的容量和能力能夠線性擴展json

 

solr的工做機制:瀏覽器

一、solr就是在lucene工具包的基礎之上進行了封裝,並且是以web服務的形式對外提供索引功能服務器

二、業務系統須要使用到索引的功能(建索引,查索引)時,只要發出http請求,並將返回數據進行解析便可app

Solr 是Apache下的一個頂級開源項目,採用Java開發,它是基於Lucene的全文搜索服務器。Solr提供了比Lucene更爲豐富的查詢語言,同時實現了可配置、可擴展,並對索引、搜索性能進行了優化。webapp

Solr能夠獨立運行,運行在Jetty、Tomcat等這些Servlet容器中,Solr 索引的實現方法很簡單,用 POST 方法向 Solr 服務器發送一個描述 Field 及其內容的 XML 文檔,Solr根據xml文檔添加、刪除、更新索引 。Solr 搜索只須要發送 HTTP GET 請求,而後對 Solr 返回Xml、json等格式的查詢結果進行解析,組織頁面佈局。Solr不提供構建UI的功能,Solr提供了一個管理界面,經過管理界面能夠查詢Solr的配置和運行狀況。maven

就是一個web工程

Solr和lucene區別

Lucene是一個開放源代碼的全文檢索引擎工具包,它不是一個完整的全文檢索引擎,Lucene提供了完整的查詢引擎和索引引擎,目的是爲軟件開發人員提供一個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能,或者以Lucene爲基礎構建全文檢索引擎。

Solr的目標是打造一款企業級的搜索引擎系統,它是一個搜索引擎服務,能夠獨立運行,經過Solr能夠很是快速的構建企業的搜索引擎,經過Solr也能夠高效的完成站內搜索功能。

Solr的下載

 

 

http://lucene.apache.org/

最新版本爲8.5.0

本次安裝版本是8.1.0

2、安裝步驟

一、解壓安裝包

 

[root@harlan tools]# tar -xf solr-8.1.0.tgz [root@harlan tools]# mv solr-8.1.0 /application/

 [root@harlan application]# ls
   solr-8.1.0 
  [root@harlan application]# ln -s solr-8.1.0 solr
  [root@harlan application]# ll
  總用量 0
  lrwxrwxrwx 1 root root 10 5月 9 11:18 solr -> solr-8.1.0

 

二、安裝包裏面有完整的依賴,解壓後能夠直接啓動

[root@harlan application]# /application/solr/bin/solr start *** [WARN] ***  Your Max Processes Limit is currently 14989. It should be set to 65000 to avoid operational disruption. If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh WARNING: Starting Solr as the root user is a security risk and not considered best practice. Exiting. Please consult the Reference Guide. To override this check, start with argument '-force'

上述提示是使用root賬戶啓動時,必須在啓動命令後面加上參數" -force ",再次帶上參數啓動

[root@harlan application]# /application/solr/bin/solr start -force *** [WARN] ***  Your Max Processes Limit is currently 14989. It should be set to 65000 to avoid operational disruption. If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh NOTE: Please install lsof as this script needs it to determine if Solr is listening on port 8983. Started Solr server on port 8983 (pid=80610). Happy searching!

由上述命令可知,solr已啓動成功,http訪問端口爲:8983

三、在瀏覽器上訪問:http://本機IP:8983 如出現下圖,說明solr啓動成功。

 

 3、建立core

 一、建立一個core,並將安裝包中的example中的配置文件複製過去

# 建立 core 目錄在 mkdir -p /application/solr/server/solr/mycore # 複製例子配置文件到新建 core 目錄下

[root@harlan solr]# cp -rf /application/solr/example/example-DIH/solr/solr/* /application/solr/server/solr/mycore/

 

二、根據修改後的core來添加core.以下圖所示:

 

 

 

 3、使用中文分詞

 一、Solr 不能對中文進行分詞,ikanalyzer能夠

 

 

 

 二、下載ikanalyzer

下載地址:https://search.maven.org/search?q=com.github.magese

 

 下載7.x的版本

將下載的jar文件拷貝到/application/solr/server/solr-weapps/weapps/WEB-INF/lib/

[root@harlan tools]# cp ik-analyzer-solr7-7.x.jar /application/solr/server/solr-webapp/webapp/WEB-INF/lib/

三、修改mycore目錄下的managed-schema文件,在其中添加如下內容。將ik-analyzer分詞器在瀏覽器上啓用起來。

<!-- ik分詞器 -->
        <fieldType name="text_ik" class="solr.TextField">
          <analyzer type="index">
                  <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
                  <filter class="solr.LowerCaseFilterFactory"/>
          </analyzer>
          <analyzer type="query">
                  <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
                  <filter class="solr.LowerCaseFilterFactory"/>
          </analyzer>
        </fieldType>

四、重啓solr

[root@harlan tools]# /application/solr/bin/solr restart -force *** [WARN] ***  Your Max Processes Limit is currently 14989. It should be set to 65000 to avoid operational disruption. If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh Sending stop command to Solr running on port 8983 ... waiting up to 180 seconds to allow Jetty process 80610 to stop gracefully. NOTE: Please install lsof as this script needs it to determine if Solr is listening on port 8983.

五、從新訪問瀏覽器

相關文章
相關標籤/搜索