solr的索引庫配置
本次主要討論的是schema.xml的索引庫的搜尋域的配置。
其中field的基本屬性配置。
fieldType:可以自己定義type的型別,比如中文的分詞器IKAnalyzer
field域:主要是用於資料存取的域,裡面使用key,value儲存資料。
name:類似於key,儲存的文字名稱
type:儲存的資料型別
indexed:是否建立索引,也就是說能不能使用該域進行搜尋查詢。
stored:是否儲存資料,一般物件的基本屬性是儲存的
multiValued:可以是多個值,和陣列基本類似,格式[]
copyField:複製域,主要是將指定的資料複製到某一個域物件中,以至於一個域可以儲存多個域的資訊,這樣就方便構建預設搜尋域就行搜尋,非常的方便。
dynamicField:動態域,可以使用萬用字元*,進行儲存資料和索取資料。
其中每一個向solr新增的物件都需要一個唯一的id,這樣可以保證每一份資料的唯一性
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<field name="user_username" type="text_ik" indexed="true" stored="true"/>
<field name="user_age" type="text_ik" indexed="true" stored="true"/>
<field name="user_address" type="text_ik" indexed="true" stored="true"/>
<field name="user_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="user_age" dest="user_keywords"/>
<copyField source="user_username" dest="user_keywords"/>
<copyField source="user_address" dest="user_keywords"/>
<dynamicField name="*_i" type="int" indexed="true" stored="true"/>