Solr学习之二:Solr配置文件说明

        solr配置通过两个文件,一个是solrconfig.xml,主要定义solr的处理程序(handler)和一些扩展程序;另一个是schema.xml,主要定义索引的字段和字段类型,下面分别说明两个文件的基本配置。

1. solrconfig

         其中的配置很多,其实很多都可以保持默认,我只说几个可能会修改到的参数

1.1dataDir

         默认在solr/data 文件夹下建立索引 ,在solrconfig中也可修改为你指定的位置,如

Xml代码 

<dataDir>/var/data/solr</dataDir> 

1.2autoCommit

         自动提交是指solr在建索引的时候收到请求并没用立即写入文件,而是先放到缓存中,等收到commit命令时才将缓存中得数据写入索引文件。

         自动提交默认关闭,建议打开,这样建索引时省得去考虑何时发送commit命令的麻烦

Xml代码 

<autoCommit> 

     <maxDocs>10000</maxDocs> <!-- 触发自动提交的文档数--> 

     <maxTime>86000</maxTime> <!-- 发送一个文档后触发自动提交的最长等待时间 (单位毫秒)  --> 

 </autoCommit> 

 1.3 highlight

         solr对高亮的默认是<em></em>,这样其实不是很明显,高亮最好显示成突出的颜色,于是可以改成如下的红色字体显示

Xml代码 

<highlighting> 

       ……

 <formatter name="html"class="org.apache.solr.highlight.HtmlFormatter" default="true"> 

 <lst name="defaults"> 

  <str name="hl.simple.pre"><![CDATA[<fontcoler=red>]]></str> 

  <strname="hl.simple.post"><![CDATA[</font>]]></str> 

 </lst> 

 </formatter> 

</highlighting> 

 

2.schema

2.1 字段类型 fieldType

Xml代码 

<fieldType name="pint"class="solr.IntField" omitNorms="true"/> 

<fieldType name="plong"class="solr.LongField" omitNorms="true"/> 

<fieldType name="pfloat"class="solr.FloatField" omitNorms="true"/> 

<fieldType name="pdouble"class="solr.DoubleField" omitNorms="true"/> 

<fieldType name="pdate"class="solr.DateField" sortMissingLast="true"omitNorms="true"/> 

         添加处理中文字段类型的方法,当然还需要先把相应的jar包放到lib中

Xml代码 

<fieldType name="text"class="solr.TextField"> 

   <analyzer class="org.apahce.lucene.analysis.cn.smart.SmartChineseAnalyzer"/> 

</fieldType> 

2.2 字段 Field

2.2.1 字段 Field

         定义需要的字段名和它的类型,如:

Xml代码 

<field name="id"type="string" indexed="true" stored="true"required="true" />  

Xml代码 

<field name="text"type="text" indexed="true" stored="true"  termVectors="true"  multiValued="false"/> 

Xml代码 

<field name="name"type="text_general" indexed="true"stored="true"/> 

<field name="alphaNameSort"type="alphaOnlySort" indexed="true"stored="false"/> 

<field name="manu"type="text_general" indexed="true" stored="true"omitNorms="true"/> 

<field name="cat"type="string" indexed="true" stored="true"multiValued="true"/> 

<field name="features"type="text_general" indexed="true" stored="true"multiValued="true"/> 

<field name="includes" type="text_general"indexed="true" stored="true" termVectors="true"termPositions="true" termOffsets="true" /> 

参数

(1)name 字段名

(2)type  字段类型 由上面的字段类型给出定义

(3)indexed  是否进行索引

(4)stored 是否进行保存,如不保存,可以进行搜索,但不能显示该字段的内容

(5)required 是否是必须字段,如若是,该字段必须有值,否则索引报错

(6)multiValued 是否允许多值

下面三个参数用个图片说明下

(7)termVectors

(8)termPosition

(9)termOffset

如对Canon Power-Shot SD500 进行分词,得到如下的结果和positon,offset等参数,

2.2.2 动态字段 dynamic fields

         动态字段表示,如果字段的定义没有在配置中找到,就在动态字段类型中进行查找,比如  sid_i ,就可以在动态字段类型中进行匹配,表示该字段是整形

Xml代码 

<dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/> 

<dynamicField name="*_s"  type="string"  indexed="true"  stored="true"/> 

<dynamicField name="*_l"  type="long"   indexed="true"  stored="true"/> 

<dynamicField name="*_t"  type="text"    indexed="true"  stored="true"/> 

<dynamicField name="*_txt"type="text_general"   indexed="true" stored="true" multiValued="true"/> 

<dynamicField name="*_en"  type="text_en"    indexed="true"  stored="true"multiValued="true" /> 

<dynamicField name="*_b"  type="boolean"indexed="true" stored="true"/> 

<dynamicField name="*_f"  type="float"  indexed="true"  stored="true"/> 

<dynamicField name="*_d"  type="double"indexed="true" stored="true"/> 

2.2.3 复制字段 copy fields

         复制源字段到目标字段,maxchars限制复制的最大长度

Xml代码 

<copyField source="body"dest="teaser" maxChars="300"/> 

       这样进行复制,就可以把所有字段放在一起,这样搜索的时候就可以不用很复杂的查询组合就可以在所有字段中搜索。如果teaser字段有数据的话,body字段的内容将被添加到text字段中。

Xml代码 

<copyField source="*"dest="text_t"/> 

2.3 其它参数

Xml代码 

<uniqueKey>id</uniqueKey> 

         文档的唯一标识, 必须填写这个field(除非该field被标记required="false"),否则solr建立索引报错。这相当于数据库中得主键,如建索引时遇到重复的,则会覆盖掉以前的记录

Xml代码 

<defaultSearchField>text</defaultSearchField> 

          如果搜索参数中没有指定具体的field,那么这是默认的域。

Xml代码 

<solrQueryParserdefaultOperator="OR" /> 

         配置搜索参数短语间的逻辑,可以是"AND|OR"。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值