1,schema.xml:
schema.xml在SolrCore的conf目录下,主要用于配置域名以及域类型的使用 (域名要先定义后使用)
1.1,solr的域:Field
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
name:域名
type:域的类型(也需要配置)
indexed:是否索引 true索引 false不索引
stored:是否存储
required:是否必须,一般只有id才是必须
multiValued:是否可以多值 为true的时,里面的值采取数据方式存储,比如上传的图片会有大中小三个版本。
1.2,solr的动态域配置:dynamicField
<dynamicField name="*_i" type="int" indexed="true" stored="true"/>
name:指定域的名称。域的名称是通过域的表达式来确定的。
type:域的类型,使用动态域的时候要确定该域的类型
1.3,solr的主键域 uniqueKey
每个文档中都应该有一个唯一主键
<uniqueKey>id</uniqueKey>
1.4,solr的复制域
<copyField source="cat" dest="text"/>
source:原域
dest:目标域
原域:<field name="cat" type="string" indexed="true" stored="true" multiValued="true"/>
目标域:<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
目标域一定是:multiValued:true
1.5,solr的域的类型 fieldType
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> <!-- in this example, we will only use synonyms at query time <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> --> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType>
name:域的类型的名称
class:指定solr的类型
analyzer:配置分词器
type:index(索引分词器) query(查询分词器)
tokenizer:分词器
filter:过滤器
2,配置中文分词器:
只用ikAnalyzer
2.1,拷贝jar包
2.2,拷贝配置文件
2.3,配置域的类型
2.4,配置域
2.5,重启tomcat测试
3,业务域名的配置
3.1,