solrconfig.xml配置文件主要定义了SOLR的一些处理规则,包括索引数据的存放位置,更新,删除,查询的一些规则配置。
1、luceneMatchVersion:表示solr底层使用的是lucene5.5.5
<luceneMatchVersion>5.5.5</luceneMatchVersion>
2、lib:表示solr引用包(插件或依赖)的位置,当dir对应的目录不存在时候,会忽略此属性。这里的 dir 表示一个 jar 包目录路径,该目录路径是相对于你当前 core 根目录的; regex 表示一个正则表达式,用来过滤文件名的,符合正则表达式的 jar 文件将会被加载
<lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
3、dataDir:用来指定一个solr的索引数据目录,solr创建的索引会存放在data\index目录下
<dataDir>${solr.data.dir:}</dataDir>
4、directoryFactory:索引存储方案,共有以下存储方案
3.1、solr.StandardDirectoryFactory,这是一个基于文件系统存储目录的工厂,它会试图选择最好的实现基于你当前的操作系统和Java虚拟机版本。
3.2、solr.SimpleFSDirectoryFactory,适用于小型应用程序,不支持大数据和多线程。
3.3、solr.NIOFSDirectoryFactory,适用于多线程环境,但是不适用在windows平台(很慢),是因为JVM还存在bug。
3.4、solr.MMapDirectoryFactory,这个是solr3.1到4.0版本在linux64位系统下默认的实现。它是通过使用虚拟内存和内核特性调用mmap去访问存储在磁盘中的索引文件。它允许lucene或solr直接访问I/O缓存。如果不需要近实时搜索功能,使用此工厂是个不错的方案。
3.5、solr.NRTCachingDirectoryFactory,此工厂设计目的是存储部分索引在内存中,从而加快了近实时搜索的速度。
3.6、solr.RAMDirectoryFactory,这是一个内存存储方案,不能持久化存储,在系统重启或服务器crash时数据会丢失。且不支持索引复制
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
5、codecFactory:编码|解码器,可以自定义。用来设置Lucene倒排索引的编码工厂类,默认使用的是官方提供的SchemaCodecFactory类。
<codecFactory class="solr.SchemaCodecFactory"/>
6、indexConfig:用于设置索引的低级别的属性