本次主要讨论的是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"/>