1. 程式人生 > >solr管理介面詳解。

solr管理介面詳解。

solr 伺服器管理介面可以檢視系統狀態、solr設定、分詞檢測、查詢索引、增減core、檢視日誌等

1.Dashboard(儀表盤)

這裡寫圖片描述

2.Logging(日誌)

這裡寫圖片描述

3.Core Admin (core管理)

主要有Add Core(新增核心), Unload(解除安裝核心),Rename(重新命名核心),Reload(重新載入核心),Optimize(優化索引庫)
Add Core是新增core:主要是在instanceDir對應的資料夾裡生成一個core.properties檔案
這裡寫圖片描述
name:給core起的名字;
instanceDir:與我們在配置solr到tomcat裡時的solr_home裡新建的core資料夾名一致;
dataDir:確認Add Core時,會在new_core目錄下生成名為data的資料夾
config:new_core下的conf下的config配置檔案(solrconfig.xml)
schema: new_core下的conf下的schema檔案(schema.xml)
這裡寫圖片描述


確認Add Core時,會在new_core下生成data資料夾,與core.properties檔案。core.properties檔案裡內容如下:
這裡寫圖片描述

4.Java Properties

可檢視到java相關的一些屬性的資訊

5. Core Selecter(core選擇器)

需要在Core Admin裡添加了core後才有可選項,這裡以已經新增好的ims_advertiser_core為例。

5.1 overview(概覽)

包含基本統計如當前文件數;和例項資訊如當前核心的配置目錄;
這裡寫圖片描述

5.2 Analysis(分析)

檢驗分詞效果,如圖,我們對companyName欄位進行了分詞 ( 至於哪些欄位能分詞,取決於在schema.xml檔案裡配置該欄位時的type是否為配置的分詞器型別text_ik)

1 2 3 4 5 6 7 8 9 10 11 12 <code><code> <!-- 配置IK分詞器start --> <fieldtype class="solr.TextField" name="text_ik" positionincrementgap="100"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" ismaxwordlength="false" usesmart="false"> <filter class="solr.LowerCaseFilterFactory"
> </filter></tokenizer></analyzer> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" ismaxwordlength="false" usesmart="false"> <filter class="solr.LowerCaseFilterFactory"> </filter></tokenizer></analyzer> </fieldtype> </code></code>

這裡的高亮就是背景色是灰色
這裡寫圖片描述

前提是已經配置好了相關的配置,詳情參見:Solr從資料庫匯入資料
這裡寫圖片描述
Comman選項:full_import:全匯入;delta_import:增量匯入。
所謂delta-import主要是對於資料庫(也可能是檔案等等)中增加或者被修改的欄位進行匯入。主要原理是利用率每次我們進行import的時候在solr.home\conf下面生成的dataimport.properties檔案,此檔案裡面有最近一次匯入的相關資訊。這個檔案如下:
#Tue Jul 19 10:15:50 CST 2016
advertiser.last_index_time=2016-07-19 10:15:49
last_index_time=2016-07-19 10:15:49
其實last_index_time是最近一次索引(full-import或者delta-import)的時間。
通過比較這個時間和我們資料庫表中的timestamp列即可得出哪些是之後修改或者新增的。

Verbose:
Clean: 在索引開始構建之前是否刪除之前的索引,預設為true
Commit: 在索引完成之後是否提交。預設為true
Optimize: 是否在索引完成之後對索引進行優化。預設為true
Debug: 是否以除錯模式執行,適用於互動式開發(interactive development mode)之中。
請注意,如果以除錯模式執行,那麼預設不會自動提交,請加引數“commit=true”

Entity: entity是document下面的標籤(data-config.xml)。使用這個引數可以有選擇的執行一個或多個entity 。使用多個entity引數可以使得多個entity同時執行。如果不選擇此引數那麼所有的都會被執行。
Start,Rows:
Custom Parameters:
Excute:執行匯入。
Refresh Status:重新整理後才能看到資料發生了變化,如果重新整理後資料還是0,說明未匯入。

5.4 Documents

Documents (索引文件)索引的相關操作,如:增加,修改,刪除等,例如我們要增加一個索引(companyName)的辦法:
  a. 先要在solr 的D:\solr_home\mycore1\conf 的 schema.xml配置檔案下,增加相關的欄位field否則會出現如下錯誤:

1 2 3 4 5 6 7 8 9 10 11 12 13 <code><code>Status: error Error: Bad Request Error: { "responseHeader": { "status": 400, "QTime": 1 }, "error": { "msg": "ERROR: [doc=126] unknown field 'companyName'", "code": 400 } }</code></code>

  b. 在如下頁面,選擇/update ,文件格式選擇json ,然後submit 提交。這樣 索引就增加上了。修改與增加一樣,都是/update ,刪除為/delete
成功之後,我們去query裡查詢資料就能查到我們剛新增的資料.
這裡寫圖片描述

Request-Handler(qt): 要進行的操作(update\delete)
Document Type:型別,有JSON、XML等格式
Document(s): 內容,手動寫的內容。
Commit Within:
Overwrite: 為true,說明如果id重複則覆蓋以前的值;為false說明如果id重複不覆蓋以前的值.
Boost: 好像是什麼版本,沒用過

5.5 Files資料夾

solr_home下的core下的conf下的相關檔案,可單擊檢視裡面的內容.
這裡寫圖片描述

5.6 Query(查詢頁面),查詢的結果要顯示哪個欄位,就得將schema.xml檔案配置欄位時的stored屬性設為true.

查詢索引的文件,包含是否存在,排序是否正確等
這裡寫圖片描述
進入該頁面後,直接點選Execute Query時,在右側會生查回資料:
這裡寫圖片描述
Request-Handler(qt):
q: 查詢字串(必須的)。:表示查詢所有;keyword:東看 表示按關鍵字“東看”查詢
fq: filter query 過濾查詢。使用Filter Query可以充分利用Filter Query Cache,提高檢索效能。作用:在q查詢符合結果中同時是fq查詢符合的(類似求交集),例如:q=mm&fq=date_time:[20081001 TO 20091031],找關鍵字mm,並且date_time是20081001到20091031之間的。
sort: 排序。格式如下:欄位名 排序方式;如advertiserId desc 表示按id欄位降序排列查詢結果。
start,rows:表示查回結果從第幾條資料開始顯示,共顯示多少條。
fl: field list。指定查詢結果返回哪些欄位。多個時以空格“ ”或逗號“,”分隔。不指定時,預設全返回。
df: default field預設的查詢欄位,一般預設指定。
Raw Query Parameters:
wt: write type。指定查詢輸出結果格式,我們常用的有json格式與xml格式。在solrconfig.xml中定義了查詢輸出格式:xml、json、python、ruby、php、phps、custom。
indent: 返回的結果是否縮排,預設關閉,用 indent=true " on 開啟,一般除錯json,php,phps,ruby輸出才有必要用這個引數。
debugQuery: 設定返回結果是否顯示Debug資訊。
dismax:
edismax:
hl: high light 高亮。hl=true表示啟用高亮
hl.fl : 用空格或逗號隔開的欄位列表(指定高亮的欄位)。要啟用某個欄位的highlight功能,就得保證該欄位在schema中是stored。如果該引數未被給出,那麼就會高 亮預設欄位 standard handler會用df引數,dismax欄位用qf引數。你可以使用星號去方便的高亮所有欄位。如果你使用了萬用字元,那麼要考慮啟用 hl.requiredFieldMatch選項。
hl.simple.pre
hl.requireFieldMatch: 如果置為true,除非該欄位的查詢結果不為空才會被高亮。它的預設值是false,意味 著它可能匹配某個欄位卻高亮一個不同的欄位。如果hl.fl使用了萬用字元,那麼就要啟用該引數。儘管如此,如果你的查詢是all欄位(可能是使用 copy-field 指令),那麼還是把它設為false,這樣搜尋結果能表明哪個欄位的查詢文字未被找到
hl.usePhraseHighlighter:如果一個查詢中含有短語(引號框起來的)那麼會保證一定要完全匹配短語的才會被高亮。
hl.highlightMultiTerm:如果使用萬用字元和模糊搜尋,那麼會確保與萬用字元匹配的term會高亮。預設為false,同時hl.usePhraseHighlighter要為true。
facet:分組統計,在搜尋關鍵字的同時,能夠按照Facet的欄位進行分組並統計。
facet.query:Facet Query利用類似於filter query的語法提供了更為靈活的Facet.通過facet.query引數,可以對任意欄位進行篩選。
facet.field:需要分組統計的欄位,可以多個。
facet.prefix: 表示Facet欄位值的字首。比如facet.field=cpu&facet.prefix=Intel,那麼對cpu欄位進行Facet查詢,返回的cpu都是以Intel開頭的, AMD開頭的cpu型號將不會被統計在內。
spatial:
spellcheck: 拼寫檢查。