Solr 学习总结之配置文件内容

Solr 的三个配置文件 solr.xml, solrconfig.xml , schema.xml.

Solr.xml是Solr第一个查找的配置文件,

persistent意思为是否将注册的实例的配置进行持久化动态注册一个实例,就会到这里添加一个solrCore元素节点  

<cores adminPath="/admin/cores">  如果这里没有写defaultCoreName的话就会显示所有的core实例子在开始的管理界面    

<core name="collection1" instanceDir=“collection1”/>    

<core name="ss60" instanceDir="D:/03workspaces/solrQuery/solrhome/ss60\"/>   

</cores> Solr可以动态创建多个实例,instanceDir可以是相对路径,也可以是绝对路径

solrconfig.xml可以配置 dataimport handler

schema.xml用来配置schema信息的,以下是schema.xml配置信息的URL访问形式

http://localhost:8983/solr/schema 获取schema.xml内容

http://localhost:8983/solr/schema/fields/ 获取schema.xml中某个字段的配置内容、等等测试的URL地址

solrconfig.xml中内容的信息

<dataDir>${solr.data.dir:D:\Company Item\solr43\src\solr\collection1\data}</dataDir> 用来配置索引生成的路径,位置信息

<updateHandler class="solr.DirectUpdateHandler2">

<listener event="postCommit" class="solr.RunExecutableListener"> 监听Update相关的事件:“postCommit”,“postOptimize”,此时可以用来触发任何代码。

<query> 根据索引的变化,可以更新缓存的参数。

newSearcher和firstSearch的监听器,在事件触发前可以做热身搜索,特别是在开机的时候,你也可以扩展写另一个事件监听器,在预热的时候加载缓存,增加每天的热词搜索

定义一个类继承AbstractSolrEventListener,

requestDispatcher 配置应该如何处理HTTP请求的各个方面,包括HTTP请求解析,远程流媒体的支持,上传文件的大小等等。

httpCaching的配置,缓存信息的配置

requestHandler 用来处理SolrQueryRequest,根据path找到的handler

UpdateRequestProcessorChain  处理SolrQueryRequest的责任链

Schema.xml文件的配置:

Field字段属性

omitNorms:Norm是在index阶段用来记录对Field的boost的信息。使用Norm会占用比较的多内存。一般来说只有full-text字段或需要index阶段boost的字段才会需要norms

compressed:字段是需要压缩的,导致索引和搜索变慢,但是减少了存储空间,只有StrField和TextField是可以压缩,通常适用于长度超过200的字段

compressThreshold:属性表示保证压缩到不小于一个大小(单位:char)

multiValued:此字段可以存储多个值

termVectors:当设置true,会存储 term vector。当使用MoreLikeThis或Higlight的时候,用来作为相似词的field应该存储起来。

termPositions:存储 term vector中的地址信息,会消耗存储开销。 

termOffsets:存储 term vector 的偏移量,会消耗存储开销。

fieldType字段属性

sortMissingLast:"true" 表示没有该field的数据排在有该field的数据之后,而不管请求时的排序规则 sortMissingFirst排序规则与sortMissingLast相反

omitTermFreqAndPositions(true|false):当为true时,省略这一领域的长远频率,位置和有效载荷

positionIncrementGap:和multiValued一起使用,设置多个值之间的虚拟空白的数量,用在多值字段的匹配规则上。例如有一个多值字段有2个值A和B。如果

positionIncrementGap=0;那么A和B对应的位置0,1,那么查询“A B”你是可以命中的。假如你不希望命中,你可以将positionIncrementGap设置为100,这时,A和

B对应的位置0,101,那么此时查询“A B”将无结果。

precisionStep是在做范围搜索的时候起作用的,默认值是4;数值类型(int float double)在Lucene里都是以string形式存储的,当然这个string是经过编码的,

经过编码后的string保证是顺序的,也就是说num1>num2,那么strNum1>strNum2。precisionStep用来分解编码后的string,例如有一个precisionStep,默认是4,也

就是隔4位索引一个前缀,比如0100,0011,0001,1010会被分成下列的二进制位“0100,0011,0001,1010","0100,0011,0001",0100,0011","0100"。这个值越大,那

么索引就越小,那么范围查询的性能(尤其是细粒度的范围查询)也越差;这个值越小,索引就越大,那么性能越差。

<field name="_version_" type="long" indexed="true" stored="true"/>

<!-- 的_version_“字段是一个内部的字段,用于通过部分的更新程序,更新日志的过程,并通过SolrCloud。它仅在内部使用这些进程,并在schema.xml中只需提供

_version_的领域应该是足够的。 -->

<dynamicField name="*" type="ignored" multiValued="true" />

<!-- 如果通过上面的匹配都没找到,可以定义这个,然后定义个type,当String处理。(一般不会发生) 但若不定义,找不到匹配会报错。 -->

<solrQueryParser defaultOperator="OR"/>

<!--标签表示多条件检索时采用的策略。如:检索条件content:xxx time:xxx solr就会采取content:xxx OR time:xxx 这种形式-->



















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值