1 了解solr的配置文件
1.1 solr的核心配置文件:solrConfig.xml
solrconfig.xml 配置文件主要定义了 solr 的一些处理规则,包括索引数据的存放 位置,更新,删除,查询的一些规则配置。 一般此文件不需要进行修改, 采取默认即可。
(1) field标签
主要是用来指定字段名称的, Lucene中是有用户在程序中指定, solr中需要提前在配置文件中指定
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
name: 字段的名称
type: 字段的类型
indexed: 是否索引
stored: 是否保存
multiValued: 是否多值, 这个字段, 类似存储一个数组
这里有两个不允许删除的: 一个是 version_ 一个是 root_ 这两个是solr内部需要使用的字段
有一个字段的名称必须为id,其类型都不允许进行修改 原因是id字段已经被主键使用uniqueKey
其余的是一些初始化好的字段
(2)dynamicField标签 ,被称为是动态字段
<dynamicField name="*_is" type="int" indexed="true" stored="true" multiValued="true"/>
此种标签是为程序的扩展所使用的, 因为我们不可能把所有的字段全部定义好, 所以就需要动态域来进行动态扩展。
(3)uniqueKey标签
必要标签, 表名文档的唯一属性, 一般默认为id
<uniqueKey>id</uniqueKey>
(4)copyField标签
<copyField source="cat" dest="text"/>
<copyField source="dog" dest="text"/>
source: 表名要复制那个字段的值
dest: 复制到那个字段上
此种标签主要是为了查询所使用的, 例如, 当查询Text字段的时候, 实质上相当于查询title和name两个字段
(5)fieldType标签
字段类型定义标签,此种标签是用来定义字段的类型的,可以指定此字段使用何种分词器进行分词。
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
1.2 solrConfig.xml 模板
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="example" version="1.5">
<!-- 这个标签不能删除
-->
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="_root_" type="string" indexed="true" stored="false"/>
<!--不能删除
-->
<!--
field: 指定solr的默认字段的, lucene中字段手动的定义,solr中提前定义好
name : 字段的名称
type : 字段的类型
indexed : 是否索引(是否分词)
stored : 是否保存
required : 是否是必须的
multiValued : 是否是多值(当前这个字段的类似是数组)
id字段: id字段是文档的唯一标识, lucene中, 文档的唯一字段由lucene自己进行维护
solr中, id字段需要由程序员自己进行维护, 保证id唯一, 如果不唯一, 就会将原有的数据给覆盖掉
-->
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="name" type="text_ik" indexed="true" stored&