Tips:solrconfig.xml文件在哪里?SolrCore中都包含哪些文件?详见Solr6.3 Getting Started Solr6.3 Add Core 添加Core
Solr6.3中给出的solrconfig.xml示例文件内容约为1400行,大体分为如下几个部分:
1.依赖的lucene版本配置,该配置决定了创建的Lucene索引结构,且Lucene各版本之间的索引结构并不是完全兼容的,需要引起注意。
2.索引创建相关的配置,如索引目录,IndexWriterConfig类中的相关配置(它决定了你的索引创建性能)
3.solrconfig.xml中依赖的外部jar包加载路径配置
4.JMX相关配置
5.缓存相关配置,缓存包括过滤器缓存,查询结果集缓存,Document缓存,以及自定义缓存等等
6.updateHandler配置即索引更新操作相关配置
7.RequestHandler相关配置,即接收客户端HTTP请求的处理类配置
8.查询组件配置如HightLight,SpellChecker等等
9.ResponseWriter配置即响应数据转换器相关配置,决定了响应数据格式返回给客户端的格式。
10.自定义ValueSourceParser配置,用来干预Document的权重、评分,排序
本篇博客会针对一些常用的配置内容做一个简单的介绍,降低复杂程度,提高效率。
1.依赖的lucene版本
2.依赖的包文件
lib标签指令可以用来告诉Solr如何去加载solr plugins(Solr插件)依赖的jar包,在solrconfig.xml配置文件的注释中有配置示例,
例如:
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-langid-\d.*\.jar" />
这里的dir表示一个jar包目录路径,该目录路径是相对于你的solr-6.3.0目录下的dist目录;
regex表示一个正则表达式,用来过滤文件名的,符合正则表达式的jar文件将会被加载。
3.索引数据目录配置
用来指定一个solr的索引数据目录,solr创建的索引会存放在data\index目录下,默认dataDir是相对于当前core目录。dataDir也可以在core.properties下配置。
Tips:Solr6.3 Getting Started core.properties的配置信息
4.目录类----供索引使用
5.Lucene倒排索引的编码类
6.索引配置
这里对索引的配置做了很多规定,当然很多是系统默认的
例如:
maxTokenCount即在对某个域分词的时候,最多只提取前10000个Token,后续的域值将被抛弃;
writeLockTimeout表示IndexWriter实例在获取写锁的时候最大等待超时时间,超过指定的超时时间仍未获取到写锁,则IndexWriter写索引操作将会抛出异常;
maxBufferedDocs即表示最大的缓存文档数为1000等。
7.Solr中启用Jmx
8.索引更新处理类
包含更新日志存放路径、版本信息、自动提交等配置信息
9.检索查询配置
包含BooleanQuery最大子Query链接数、filter过滤器的缓存、对Query返回的查询结果集即TopDocs的缓存、Document中存储域的缓存、缓存Document id、自定义缓存等。
10.Select请求
设置为false即表示Solr 服务器端不接收/select请求,即如果你请求http://localhost:8983/solr/coreName/select?qt=xxxx时,将会返回一个404,这个select请求是为了兼容先前的旧版本,已经不推荐使用。
11.检索请求处理
用于处理搜索查询,主要请求处理程序提供Solr是“SearchHandler”它代表一个续集的搜索组件(见下文)和支持分布式跨多个分片的查询。
12.响应信息及编码
配置Solr响应数据转换类,JSONResponseWriter就是把HTTP响应数据转成JSON格式,content-type即response响应头信息中的content-type,即告诉客户端返回的数据的MIME类型为text/plain,且charset字符集编码为UTF-8.