1. 程式人生 > >Solr--01.Solr部署到Tomcat上

Solr--01.Solr部署到Tomcat上

一、Solr概述

1、Solr概述

      Solr是一個獨立的企業級搜尋應用伺服器、它對外提供類似於web-service的API介面、使用者可以通過http請求、
向搜尋引擎伺服器提交一定格式的檔案、生成索引、也可以通過http訪問提出查詢請求、並得到各種格式的返回結果、
       Solr本質是基於Lucene的全文搜尋伺服器、同時對其進行了擴充套件、提供了比Lucene更為豐富的查詢語言、
同時實現了可配置可擴充套件、並對查詢效能進行了優化、並提供了一個完善的功能管理介面。

2、Solr下載及安裝

官網:http://lucene.apache.org/solr/

歷史版本下載網址:

http://archive.apache.org/dist/lucene/solr/

本部落格用的是4.10.2版本 

3、Solr目錄結構

安裝:解壓即安裝。如下圖

 解壓後為solr-4.10.2為安裝目錄

 solr-4.10.2/example目錄

Solr內部有一個內建的WEB容器,叫Jetty.Jetty是一個WEB容器

Solr目錄:包含全文檢索要儲存的索引資料以及相關的一些配置檔案。

solr-webapp和webapps:其實包含的是一樣的內容,
都是Solr的內建Web應用,我們可以通過Http請求訪問該應用,實現對Solr服務的管理和訪問

start.jar:web應用需要一個Web容器來啟動,
而這個jar包會使用一個叫做Jetty的WEB容器(類似與Tomcat),來啟動Solr的Web服務。

二、Solr部署到Tomcat上

1、使用solr央置的Jetty伺服器啟動solr

步驟:

1)	進入solr-4.10.2/example目錄
2)	開啟命令列,執行 java -jar start.jar 命令,即可啟動Solr服務
3)	開啟瀏覽器,通過http://localhost:8983/solr來訪問Solr管理頁面。(Jetty服務的預設埠是8983)

2、將Solr部署到Tomcat中

步驟:

(1)、部署Web服務,將solr-4.10.2/example/webapps/solr.war複製到自己的tomcat/webapps目錄中,並解壓

(2)、在Tomcat中加入相關jar包:將需要的jar包複製到tomcat/webapps/solr/WEB-INF/lib下、如圖
<為了防止不必要的錯誤、將如下包也拷到D:\apache-tomcat-8.5.31\lib>

(3)、修改Tomcat配置檔案,指向Solr的索引庫及配置目錄。
注意,拷貝solr-4.10.2/example/solr目錄,到D盤、D:/develop/solr、把這個資料夾複製出來,獨立使用

(4)、開啟tomcat/bin/catalina.bat檔案、新增一條配置資訊、set "JAVA_OPTS=-Dsolr.solr.home=d:/develop/solr"
(5)、進入tomcat/bin目錄、點選startup.bat啟動tomcat
(6)、開啟瀏覽器、訪問http://localhost:8080/solr

 

注意:如果瀏覽器執行有錯誤就修改這裡:如下圖

 執行結果:

三、Solr管理頁面

1、DashBoard(儀表盤)

儀表盤,顯示Solr的基本資訊。其中包括執行時間,版本資訊,JVM及系統記憶體使用情況。

2、Logging(日誌)

顯示Solr執行過程中的錯誤資訊和異常資訊。其中,黃色代表警告,紅色代表異常。
Level 是用來控制相關類日誌的顯示資訊的內容,將Level選項點開。其中:
         ALL:顯示全部資訊
         INFO:除了正常資訊,其餘資訊全部顯示
         WARN:顯示警告資訊
         ERROR:顯示異常資訊
UNSET:移除之前設定的資訊

3、Core Admin (Core管理)

在Solr中,每一個Core,代表一個索引庫,裡面包含索引資料及其資訊。
Solr中可以擁有多個Core,也就同時管理多個索引庫!就像在MySQL中可以有多個database一樣!

Core 管理:索引庫管理,索引庫優化等。(如下圖)

主要包括 Add Core(新增 Core)、Unload(解除安裝 Core)、Rename(重新命名 Core)、Optimize(優化索引庫)幾個功能。

以Solr官方的例子basic_configs的Core為例,

其中:
instanceDir:代表當前 Core 的根目錄
dataDir:代表當前 Core 索引檔案的存放目錄
numDocs:代表當前 Core 索引文件數量。
maxDoc:代表當前 Core 最大索引文件數量。

 

4、JavaProperties和ThreadDump

Java和Jetty或Tomcat一些屬性資訊,jdk版本資訊等等。
JVM 中的所有活動執行緒的Thread Dump,Java的執行引數。

5、CoreSelector(Core選擇器)

5.1、介面預覽

這裡可以看到目前存在的所有Core,並且可以選擇其中一個,進行更詳細的操作:

 

 5.2、通過Solr管理介面新增索引資料

5.3、通過Solr管理介面查詢索引資料

 

查詢引數解釋:

 

名稱

描述

q

query 查詢字串,必須的。

fq

filter query。使用Filter Query可以充分利用Filter Query Cache,提高檢索效能。作用:在q查詢符合結果中同時是fq查詢符合的,例如:q=mm&fq=date_time:[20081001 TO 20091031],找關鍵字mm,並且date_time是20081001到20091031之間的。

fl

field list。指定返回結果欄位。以空格“ ”或逗號“,”分隔。

start

用於分頁定義結果起始記錄數,預設為0。

rows

用於分頁定義結果每頁返回記錄數,預設為10。

sort

排序,格式:sort=<field name>+<desc|asc>[,<field name>+<desc|asc>]… 。示例:(inStock desc, price asc)表示先 “inStock” 降序, 再 “price” 升序,預設是相關性降序。

df

預設的查詢欄位,一般預設指定。

q.op

覆蓋schema.xml的defaultOperator(有空格時用"AND"還是用"OR"操作邏輯),一般預設指定。必須大寫

wt

writer type。指定查詢輸出結構格式,預設為“xml”。在solrconfig.xml中定義了查詢輸出格式:xml、json、python、ruby、php、phps、custom。

qt

query type,指定查詢使用的Query Handler,預設為“standard”。

explainOther

設定當debugQuery=true時,顯示其他的查詢說明。

defType

設定查詢解析器名稱。

timeAllowed

設定查詢超時時間。

omitHeader

設定是否忽略查詢結果返回頭資訊,預設為“false”。

indent

返回的結果是否縮排,預設關閉,用 indent=true|on 開啟,一般除錯json,php,phps,ruby輸出才有必要用這個引數。

version

查詢語法的版本,建議不使用它,由伺服器指定預設值。

debugQuery

設定返回結果是否顯示Debug資訊。

hl

高亮