solr.xml配置详解
solr.xml配置文件支持使用变量,格式为${属性名称:默认值},后面的默认值是可选的,表示当根据属性名称获取属性值发现找不到时会采用冒号后面配置的默认值。当用户没有配置默认值时,solr程序内部会设置默认值。
冒号前的值有两种设置途径:
- 通过JVM的-D参数设置,比如-DpropertyName=value;
通过core.properties属性配置文件设置;
(一般core.properties位于solr_home目录,solr会扫描该目录及子目录下所有core.properties来创建core。若想要修改core.properties的加载路径,可以通过-Dsystem.properties=conf\solrcore.properties来实现。)
core.properties属性
- name:core名称,必需参数;
- config:指定solrconfig.xml配置文件的文件名,默认solrconfig.xml;
- dataDir:配置core的数据目录,该目录下主要存放索引数据以及事务日志,默认data,可选参数;
- ulogDir:用于配置事务日志的存放目录,默认是存放在dataDir的tlog目录下,你可以将事务日志目录设置为跟索引数据目录不在同一个硬盘,这样减少磁盘竞争提升I/O性能;
- schema: 拥有配置core的schema.xml文件名称,默认是schema.xml;
- shard:配置分片id,用于solr cloud模式下;
- collection:配置当前core属于哪个collection,用于solr cloud模式下;
- roles:solr cloud的role定义,用于solr cloud模式下;
- properties:用于配置core.properties文件的加载路径,已不推荐使用;
- loadOnStartup:是否solr启东市就加在当前core并创建新的index searcher实例;
- transient:用来设置当solr的transient-cacheSize达到阀指时是否自动卸载当前core;
- coreNodeName:配置core节点名称,用于solr cloud模式;
solrconfig.xml配置
- 依赖的lucene版本配置:决定创建的lucene索引结构,因为lucene各版本之间的索引结构并不是完全兼容的;
- 索引创建相关的配置,如索引目录,IndexWriterConfig类中的相关配置,决定了索引创建性能;
- solrconfig.xml中依赖的外部jar包加载路径配置;
- JMX相关配置;
- 缓存相关配置,缓存包括过滤器缓存,查询结果集缓存,Document缓存,以及自定义缓存等;
- updateHandler配置即索引更新操作相关配置;
- RequestHandler相关配置,即接收客户端HTTP请求的处理类配置;
- 查询组件配置,如HightLight,SpellChecker等等;
- ResponseWriter配置即相应数据转换器相关配置,决定了响应数据是以什么格式返回给客户端的;
- 自定义ValueSourceParser配置,用来敢于Document的权重,评分,排序;