Solr--01.Solr部署到Tomcat上
一、Solr概述
1、Solr概述
Solr是一個獨立的企業級搜尋應用伺服器、它對外提供類似於web-service的API介面、使用者可以通過http請求、
向搜尋引擎伺服器提交一定格式的檔案、生成索引、也可以通過http訪問提出查詢請求、並得到各種格式的返回結果、
Solr本質是基於Lucene的全文搜尋伺服器、同時對其進行了擴充套件、提供了比Lucene更為豐富的查詢語言、
同時實現了可配置可擴充套件、並對查詢效能進行了優化、並提供了一個完善的功能管理介面。
2、Solr下載及安裝
官網:http://lucene.apache.org/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 |
高亮 |