FieldType
實例:<fieldType name="text_ik" class="solr.TextField"></fieldType>
name:就是FieldType的名稱
class:指向了org.apache.slor.analysis對應的class名稱,用這個來定義類型的行為
Field:
實例:<field name="content_ik" type="text_ik" indexed="true" stored="true" multiValued=”true”/>
Name:是查詢時的名稱
Type:這個是之前定義的FieldType的名稱
Indexed:是否索引(true/false)
Stored:是否存儲(是否將索引結果存儲到索引庫)
multiValued:是否多值(一般配合copyField使用)
copyField:
應用場景:我們在搜索時比如輸入java,一篇文章分為標題、簡介、內容等很多字段,輸入的關鍵字需要制定solr中的域進行檢索,不可能從一個表中將所有字段進行索引,因為有些字段不需要索引,所以出現copyField域,把多個域的關鍵詞復制到同一個域,多個域時,可以放到一個域中。就不用定義那么多域了。搜索比較方便
實例:<copyField source="projectName" dest="keywords"/>
Source:是Field域的名稱
Dest:是destination的縮寫 目標域
dynamicField
實例:<dynamicField name=”*_i” type=”int” indexed=”true” stored=”true”/>
name為*_i,定義它的type為int,那么在使用這個字段的時候,任務以_i結果的字段都被認為符合這個定義