solr之solrconfig.xml
1,solrconfig.xml 配置文件中包含了很多 solr 自身配置相关的参数 ,solrconfig.xml 配置文件示例可以从 solr home的以下目录找到:
2,solrconfig.xml 中的配置项主要分以下几大块:
1. 依赖的 lucene 版本配置,这决定了你创建的 Lucene 索引结构,因为 Lucene 各版本之间的索引结构并不是完全兼容的,这个需要引起你的注意。
2. 索引创建相关的配置,如索引目录, IndexWriterConfig 类中的相关配置 ( 它决定了你的索引创建性能 )
maxTokenCount 即在对某个域分词的时候,最多只提取前 10000 个 Token ,后续的域值将被抛弃。
writeLockTimeout 表示 IndexWriter 实例在获取写锁的时候最大等待超时时间,超过指定的超时时间仍未获取到写锁,则 IndexWriter 写索引操作将会抛出异常。
表示创建索引的最大线程数,默认是开辟 8 个线程来创建索引。
表示创建索引时内存缓存大小,单位是 MB, 默认最大是 100M 。
表示在 document 写入到硬盘之前,缓存的 document 最大个数,超过这个最大值会触发索引的 flush 操作。
3.solrconfig.xml 中依赖的外部 jar 包加载路径配置
如:
这里的 dir 表示一个 jar 包目录路径,该目录路径是相对于你当前 core 根目录的;regex 表示一个正则表达式,用来过滤文件名的,符合正则表达式的 jar 文件将会被加载
如果solr_home 下不存在 core 的话,那 dataDir 默认就是相对于 solr_home
4. 缓存相关配置,缓存包括过滤器缓存,查询结果集缓存, Document 缓存,以及自定义缓存等等
initialSize="512"
autowarmCount="0"/>
用来配置 filter 过滤器的缓存相关的参数
initialSize="512"
autowarmCount="0"/>
用来配置对 Query 返回的查询结果集即 TopDocs 的缓存
initialSize="512"
autowarmCount="0"/>
用来配置对 Document 中存储域的缓存,因为每次从硬盘上加载存储域的值都是很昂贵的操作,这里说的存储域指的是那些 Store.YES 的 Field 。
6.updateHandler 配置即索引更新操作相关配置
指定索引更新操作处理类, DirectUpdateHandler2 是一个高性能的索引更新处理类,它支持软提交。
设置索引库更新日志,默认路径为solr home下面的data/tlog。
自动硬提交方式:maxTime:设置多长时间提交一次maxDocs:设置达到多少文档提交一次openSearcher:文档提交后是否开启新的searcher,
如果false,文档只是提交到index索引库,搜索结果中搜不到此次提交的文档;如果true,既提交到index索引库,也能在搜索结果中搜到此次提交的内容。
7.RequestHandler 相关配置,即接收客户端 HTTP 请求的处理类配置,输入的请求会通过请求中的路径被转发到特定的处理器
这个 requestHandler 配置的是请求 URL /query 跟请求处理类 SearcherHandler 之间的一个映射关系,即你访问 http://localhost:8080/solr/coreName/query?q=xxx时,会交给 SearcherHandler 类来处理这个 http 请求,你可以配置一些参数来干预SearcherHandler 处理细节。
其他的一些 RequestHandler 说明详见实际配置文件。