managed-schema 檔案詳解
找到配置的Core Admin的目錄下的配置檔案,我這是solrhome\demo_core\conf\managed-schema
在managed-schema.xml檔案中,主要配置SolrCore資料資訊,包括:Field和FiledType的定義等資訊,在solr中,Field和FieldType都需要先定義後使用。
- field詳解:
name
:指定域的名稱(自定義)type
:指定域的型別index
:是否索引
是:(將分好的詞進行索引,索引的目的,就是為了搜尋)
否:(不索引,也就是不對該field域進行搜尋)stored
:是否儲存
是:將field域中的內容儲存到文件域中。儲存的目的,就是為了搜尋頁面顯示取值用的。
否:不將field域中的內容儲存到文件域中。不儲存,則搜尋頁面中沒法獲取該field域中的值required
:是否必須multiValued
:是否多值,比如查詢資料需要關聯多個欄位資料,一個field儲存多個值資訊,必須將multiValued設定為true。
- dynamicField
name
為*_i
,定義它的type為int,那麼在使用這個欄位的時候,任何以_i
結果的欄位都被認為符合這個定義
- uniqueKey
其中的id
是在field標籤中已經定義好的域名,而且該域設定為required為true。一個managed-schema檔案中必須有且僅有一個唯一鍵。
- copyfield
複製域
應用場景:我們在搜尋時比如輸入java,一篇文章分為標題、簡介、內容等很多欄位,輸入的關鍵字需要定製solr中的域進行檢索,不可能從一個表中將所有的欄位進行索引,因為有些欄位不需要索引,所以出現copyField域,把多個域的關鍵詞複製到同一個域,多個域時,可以放到一個域中。就不用定義那麼多域了。搜尋比較方便。
例項:<copyField source="projectName" dest="keywords"/>
Source
:是Field域的名稱Dest
:是destination的縮寫 目標域
使用案例:
- 1、兩個普通域:title和author
- 2、使用複製域,將兩個域進行索引檢索
- 3、該域名field name=”text”即使複製域
- 1、兩個普通域:title和author
fieldType(域型別)
solr的fieldtype屬性 | javaBean屬性型別 |
---|---|
string | String |
boolean | Boolean |
pint | Integer |
pdouble | Double |
plong | Long |
pfloat | Float |
pdata | Data |
- 分詞器
Name
:指定域型別的名稱Class
:指定該域型別對應的solr的型別Analyzer
:指定分詞器Type
:index、query,分別指定搜尋和索引時的分析器Tokenizer
:指定分詞器Filter
:指定過濾器
本作品採用《CC 協議》,轉載必須註明作者和本文連結