solrconfig.xml 之 maxWarmingSearchers

该参数用于设置最大的 searcher 数量,这些 searcher 实现预热好的,随时可以调用。如果超过这个数量,将会报错。在一个只读的索引库中,2个预热的 searcher 是相对合理的,如果是读写的索引库中,根据内存和cpu的大小可以给一个相对大一点的值。

<maxWarmingSearchers>2</maxWarmingSearchers>

solrconfig.xml 之 maxBooleanClauses

设置boolean 查询中,最大条件数。在范围搜索或者前缀搜索时,会产生大量的 boolean 条件,如果条件数达到这个数值时,将抛出异常,限制这个条件数,可以防止条件过多查询等待时间过长。

<maxBooleanClauses>1024</maxBooleanClauses>

solrconfig.xml 之 autoCommit

这个设置用于控制什么时候将更新的数据写入索引,该设置由以下两个子参数

maxDocs
当索引的文档达到这个数量时,就自动更新到索引中
maxTime
单位为毫秒,当离上一次 commit 超过这个时间后,将自动最近更新的文档写入索引中
只要达到上面任一条件,solr 都将自动最近更新的文档写入索引中,如果没有指明 autoCommit 这个参数,只能通过显示调用 commit 才能将最近更新的文档写入索引中。
设置这个参数时,就需要最性能和准确度之间做个权衡,频繁提交,可以提高数据准确性,但是对性能有一定的损耗。
<autoCommit>
	<maxDocs>10000</maxDocs>
	<maxTime>1000</maxTime>
</autoCommit>

solrconfig.xml 之 updateHandler

用指定索引更新的处理类。

<updateHandler class="solr.DirectUpdateHandler2"></updateHandler>

solrconfig.xml 之 其他索引设置

以下是另外一些比较重要的索引的设置:
maxBufferedDocs:
设置索引刷新到磁盘前,缓存在内存中文档的数量。Solr 默认情况下没有设置该值
ramBufferSizeMB:
单位为 M,设置索引刷新到磁盘前,缓存在内存时使用的最大内存。该参数和 maxBufferedDocs 同时设置,只要达到其中的一个限制时,都将缓存写入磁盘
maxMergeDocs:
该值用于设置单个片段最大的文档数量。达到这个值时,当前片段将被关闭,然后创建一个新的片段。
maxFieldLength:
字段内容经分词后会产生许多的 tokens,当这些 tokens 达到该值的设置后,其他的 其他的 tokens 会被忽略。
<maxBufferedDocs>1000</maxBufferedDocs>
<ramBufferSizeMB>32</ramBufferSizeMB>
<maxMergeDocs>2147483647</maxMergeDocs>
<maxFieldLength>10000</maxFieldLength>

合并因子(mergeFactor)

mergeFactor 是 lucene 用于控制索引片段的数量,当数据大于 mergeFactor 的值时,这些索引将被合并成一个大的片段。当提交索引数据时,它将被加到最新打开的片段中。当一个新的索引片段被创建时,就会去检查这个合并因子。这个合并因子的大小对索引和搜索的速度有着影响,如果这个索引因子比较小,也就是索引片段比较少,这样会相对比较频繁促发索引合并,带来的好处时索引文件比较少,搜索时需要扫描的索引文件也就比较少,搜索速度就会相对提高。如果这个因子比较大,这样索引合并的次数次数机会减少,而索引片段会增多,这样搜索时需要访问的文件数就增多了,这样搜索速度就会相对慢点。所以该因子的设定需要一个权衡,同时保证搜索和索引都相对快速。在示例的 solrconfig.xml 中,该因子默认值为 10,就是出于一个合理的出发点去考虑的。
<mergeFactor>10</mergeFactor>

solrconfig.xml 之 UseCompoundFile

设置 UseCompoundFile 为 true 时,solr 会将数据索引到一个索引文件中。有的操作系统有限制一个线程打开文件的数量,设置这个值为 true 时,可以避免达到这个文件数量限制。
这个设置也将影响索引复制时需要传输的数据量。
solr 示例中,该设置的值为 false,在 lucene 1.4 版本以后,代码中默认该设置的值为 true。

solrconfig.xml 之 DirectoryFactory

该参数用于指定 索引文件的存储形式,默认的 solr.StandardDirectoryFactory 是基于文件系统的,还有基于 solr.MMapDirectoryFactory, solr.NIOFSDirectoryFactory 和 solr.SimpleFSDirectoryFactory 的实现,
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
solr.RAMDirectoryFactory 是基于内存的实现,没有持久索引文件,也不能在分布式的复制中使用,通过这种方式指定使用 内存索引:
<directoryFactory class="org.apache.solr.core.RAMDirectoryFactory"/>

solrconfig.xml 之 dataDir

该参数用于用户自定义 solr 索引数据存放的位置,默认情况下,索引文件存在在 SOLR_HOME 下的 data 文件夹中。该参数可以是一个绝对路径或者是相对于当前 servlet 容器的相对位置。如下所示:

<dataDir>/var/data/solr/</dataDir>

solrconfig.xml

solrconfig.xml 是 solr 的主配置文件,里头配置的参数影响着 solr 的工作,在这个文件里可以配置以下部分内容:

  • 请求处理类
  • 监听器(监听器可以触发一些特殊的代码,比如预热查询缓存)
  • HTTP 通讯的请求调度
  • 分布式过程中的索引复制
该文件存在 solr/conf 目录下

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress · 闽ICP备18020075号