1、域相當於數據庫的表字段,用戶存放數據,因此用戶根據業務需要去定義相關的Field(域),一般來說,每一種對應着一種數據,用戶對同一種數據進行相同的操作。
域的常用屬性:
- name:指定域的名稱
- type:指定域的類型
- indexed:是否索引
- stored:是否存儲
- required:是否必須
- multiValued:是否多值
2、修改solrhome/collection1/conf/schema.xml
修改solrhome的schema.xml 文件 設置業務系統 Field,普通域
<!--IKAnalyzer Field--> <field name="content_ik" type="text_ik" indexed="true" stored="true" /> <field name="item_goodsid" type="long" indexed="true" stored="true"/> <field name="item_title" type="text_ik" indexed="true" stored="true"/> <field name="item_price" type="double" indexed="true" stored="true"/> <field name="item_image" type="string" indexed="false" stored="true" /> <field name="item_category" type="string" indexed="true" stored="true" /> <field name="item_seller" type="text_ik" indexed="true" stored="true" /> <field name="item_brand" type="string" indexed="true" stored="true" /> <field name="item_updatetime" type="date" indexed="true" stored="true" />
復制域:
復制域的作用在於將某一個Field中的數據復制到另一個域中
source:原來域
dest:指定域(即:將原來域復制到該指定域)
復制域常用於多域搜索,如:電商項目中搜索商品,既要在標題域中搜索也要在分類域中搜索,傳統的做法需要手工寫兩次,而solr想發送一次請求,可到兩個域中搜索,為此,引入了復制域的概念,將兩個域的域名復制到一個text文本域中。
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/> <copyField source="item_title" dest="item_keywords"/> <copyField source="item_category" dest="item_keywords"/> <copyField source="item_seller" dest="item_keywords"/> <copyField source="item_brand" dest="item_keywords"/>
動態域:
當我們需要動態擴充字段時,我們需要使用動態域。對於優樂選,規格的值是不確定的,所以我們需要使用動態域來實現。需要實現的效果如下:
<dynamicField name="item_spec_*" type="string" indexed="true" stored="true" />