我的solr學習筆記--solr admin 頁面 檢索除錯
http://www.solr.cc/blog/?p=1678 solr中國
前言
Solr/Lucene是一個全文檢索引擎,全文引擎和SQL引擎所不同的是強調部分相關度高的內容返回,而不是所有內容返回,
所以部分內容包含在索引庫中卻無法命中是正常現象。
多數情況下我們建議優化分詞器或者引擎其它部分達到預期檢索效果。
-
分詞器調節
按照如下步驟進入分詞器除錯介面
1、選擇collection
2、選擇analysis選單
3、在索引框中輸入要索引的文件
4、在檢索框中輸入要檢索的詞語
5、選擇需要除錯的欄位,這裡假設要將內容索引到title欄位,並且在該欄位上檢索
6、點選分析按鈕
7、在展示出來的原文分詞結果(左側)和關鍵詞分詞結果(右側)中對比最下面一行,若右側分詞結果的所有詞在左側都能找到,那麼在AND關係的檢索時能夠匹配;若部分能夠找到,那麼在OR關係的檢索中能夠匹配;若完全找不到,那麼無法匹配。
-
檢索調節
-
準備資料
-
索引一條記錄,id=1,title=中華人民共和國來做除錯
-
直接檢索無法出結果問題
直接檢索中華人民共和國
從上圖看(圖可放大),最終檢索結果被解析成了”+text:中 +text:華 +text:人 +text:民 +text:共 +text:和 +text:國”,因為我們在q的輸入框中沒有輸入檢索欄位,所以solr會檢索預設欄位”text”,而該欄位不包含我們需要的資訊,所以檢索無結果。
輸入正確的欄位title後,可以成功檢索出來
-
部分匹配無法出結果問題
原文中華人民共和國分詞後:中華、人民、共和國
搜尋詞中華解放軍分詞後:中華、解放軍
部分匹配,我們也希望檢索出來
從上圖看(圖可放大),最終檢索結果被解析成了"+title:中 +title:華 +title:解放 +title:軍",加號(+)標識邏輯與關係,相當於檢索"title:中 AND title:華 AND title:解放 AND title:軍",因此無法檢索出來
修改預設邏輯關係
(q.op=OR)為OR後
,分此後的檢索式加號沒了,是邏輯或關係,因此能夠成功檢索出來。這裡OR一定要大寫。
這個預設檢索關係可以通過修改schema.xml的defaultOperator進行配置
<solrQueryParser defaultOperator=”OR”/>
-
多關鍵字檢索無法出結果問題
有時候使用者會用空格輸入多個關鍵字進行檢索,如title:中華 人民 共和國
通過開啟debugQuery引數,我們看到,最終檢索結果被解析成了
+(+title:中 +title:華) +(+text:人 +text:民) +(+text:共 +text:和 +text:國)
中華是在title上檢索的,後面的詞都到text欄位檢索了
通過指定預設欄位df為title,可以修正最終檢索式,從上圖看,修正後結果可以正常檢索返回。
其它
以上是一些常見資料召回問題。
檢索調優是搜尋引擎使用中最複雜的過程,需要在長期實踐中積累經驗,同時需要了解資料情況,業務特點等多方面根據情況進行調整。
Solr web伺服器管理介面用法
http://www.devnote.cn/article/38.html
這裡列舉一些常用的比較重要的內容。
Dashboard(儀表盤)
訪問主頁,http://你的域名或ip/solr/,預設顯示此頁內容,包含solr版本,包含系統記憶體和jvm記憶體的使用情況,jvm引數等
Logging(日誌)
可以用來檢視solr執行是否有警告或者異常,以便及時處理
Core Admin(索引庫管理)
這個介面很重要,這使多核的配置,索引庫的優化等,變得非常簡單;
主要功能包括:Add Core(新增核心,即索引庫),Unload(解除安裝核心),Rename(重新命名核心),Optimize(優化索引庫)。如我這裡是兩個核心。
Java Properties(java屬性)
java及tomcat的一些屬性
Core Selector(核心選擇器,這裡以collection1為例)
- Overview(概覽):包含基本統計如當前文件數;和例項資訊如當前核心的配置目錄;
- Analysis(分析):檢驗分詞效果,如圖,分詞後“開發”將被高亮(注意FieldType需要選定為與被分析內容型別一致,如這裡的title配置了中文分詞)
- Config(配置):當前核心的配置,即solrconfig.xml的內容
- Query(查詢):這是一個查詢介面,用的比較多,用來查詢索引的文件,包含是否存在,排序是否正確等。
- Schema(當前索引庫定義),即即schema.xml的內容
安全:因為此介面涉及到位solr增減核心等管理操作,在實際產品上執行時,儘量設定禁用在公網上(通過ip或者域名)的訪問,需要使用時再臨時開啟。