solr域在家目录下面solr_homecollection1conf中的schema.xml里面定义。
域必须要先在schema.xml下定义后才能使用。
solr在操作Field域时需要在schema.xml中定义(根据自己的业务需求自定义)。
1、唯一域
<!-- id 域 也叫唯一域 每一个文档必须有唯一域 --> <uniqueKey>id</uniqueKey>
2、动态域
<!-- 动态域 *_i:通配符 --> <dynamicField name="*_i" type="int" indexed="true" stored="true"/> <dynamicField name="*_is" type="int" indexed="true" stored="true" multiValued="true"/> <dynamicField name="*_s" type="string" indexed="true" stored="true" /> <dynamicField name="*_ss" type="string" indexed="true" stored="true" multiValued="true"/>
3、复制域 copyField 可以将多个Field复制到一个Field中,一便进行统一检索。例如:将商品名称和商品描述组合在一起,在索引的时候直接索引组合内容,防止两次查询。
<copyField source="title" dest="text"/>
例如:搜索title标题、description内容 、author作者,我们可以定义title、description、author的复制域
a、先创建域
<field name="title" type="text_general" indexed="true" stored="true" multiValued="true"/> <field name="author" type="text_general" indexed="true" stored="true"/> <field name="description" type="text_general" indexed="true" stored="true"/> <field name="keywords" type="text_general" indexed="true" stored="false"/>
b、创建copyField 域
<!--source:源域 dest:目标域 --> <copyField source="title" dest="keywords"/> <copyField source="author" dest="keywords"/> <copyField source="description" dest="keywords"/>