一. DataDir 参数
<dataDir>/var/data/solr</dataDir>
不用 “Solr home”/data 目录,可以指定其它别的目录来存放所有索引数据。如果使用了 replication(主从复制),它可以匹配 replication 配置。如果这个目录不是绝对的,那会是当前 servlet 容器工作目录下的相对目录。
二. mainIndex
这些值用来控制合并多个索引段 <mainIndex>
<!-- lucene options specific to the main on-disk lucene index --> <useCompoundFile>false</useCompoundFile> <mergeFactor>10</mergeFactor> <maxBufferedDocs>1000</maxBufferedDocs> <maxMergeDocs>2147483647</maxMergeDocs> <maxFieldLength>10000</maxFieldLength> </mainIndex>
1. <useCompoundFile>
通过将很多 Lucene 内部文件整合到单一一个文件来减少使用中的文件的数量。
这可有助于减少 Solr 使用的文件句柄数目,代价是降低了性能。
除非是应用程序用完了文件句柄,否则 false 的默认值应该就已经足够。
2. mergeFactor
决定低水平的 Lucene 段被合并的频率。较小的值(最小为 2 )使用的内存较少但导致的索引时间也更慢。
较大的值可使索引时间变快但会牺牲较多的内存。
3. maxBufferedDocs
在合并内存中文档和创建新段之前,定义所需索引的最小文档数。
段是用来存储索引信息的 Lucene 文件。较大的值可使索引时间变快但会牺牲较多的内存。
4. maxMergeDocs
控制可由 Solr 最适合于具有合并的 Document 的最大数。
较小的值 (< 10 大量更新的应用程序。
该参数不允许lucene在任何索引段里包含比这个值更多的文档,
但是,多余的文档可以创建一个新的索引段进行替换。
5. maxFieldLength:
对于给定的 Document,控制可添加到 Field 的最大条目数,进而截断该文档。
如果文档可能会很大,就需要增加这个数值。然而,若将这个值设置得过高会导致内存不足错误。
6. unlockOnStartup
unlockOnStartup 告知 Solr 忽略在多线程环境中用来保护索引的锁定机制。
在某些情况下,索引可能会由于不正确的关机或其他错误而一直处于锁定,这就妨碍了添加和更新。
将其设置为 true 可以禁用启动锁定,进而允许进行添加和更新。
三 高亮插件配置
<highlighting> <!-- Configure the standard fragmenter --> <!-- This could most likely be commented out in the "default" case --> <fragmenter name="gap" class="org.apache.solr.highlight.GapFragmenter" default="true"> <lst name="defaults"> <int name="hl.fragsize">100</int> </lst> </fragmenter> <!-- A regular-expression-based fragmenter (f.i., for sentence extraction) --> <fragmenter name="regex" class="org.apache.solr.highlight.RegexFragmenter"> <lst name="defaults"> <!-- slightly smaller fragsizes work better because of slop --> <int name="hl.fragsize">70</int> <!-- allow 50% slop on fragment sizes --> <float name="hl.regex.slop">0.5</float> <!-- a basic sentence pattern --> <str name="hl.regex.pattern">[-\w ,/\n\"']{20,200}</str> </lst> </fragmenter> <!-- Configure the standard formatter --> <formatter name="html" class="org.apache.solr.highlight.HtmlFormatter" default="true"> <lst name="defaults"> <str name="hl.simple.pre"><![CDATA[<em>]]></str> <str name="hl.simple.post"><![CDATA[</em>]]></str> </lst> </formatter> </highlighting>