热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

Solr的三个配置文件solr.xml,solrconfig.xml,schema.xml.Solr.xml是Solr第一个查找的配置文件,persistent意思为是否将注册的实例的配置进

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

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

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

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

"collection1" instanceDir=“collection1”/>    

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

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中内容的信息

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

监听Update相关的事件:“postCommit”,“postOptimize”,此时可以用来触发任何代码。

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

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"。这个值越大,那

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






>




















推荐阅读
author-avatar
fanersai_668
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有