solr中solrconfig.xml详解

前段时间在网上搜索些solrconfig的配置文件资料,发现大都比较零散。因此花了段时间整理相关内容。

推荐部分相关资料:http://www.luoshengsha.com/197.html

http://guohf.iteye.com/blog/1440838  这个也对solrconfig总结的比较详细。

<?xml version="1.0" encoding="UTF-8" ?>
<config>
  <abortOnConfigurationError>${solr.abortOnConfigurationError:true}
  </abortOnConfigurationError>  

  <luceneMatchVersion>LUCENE_32</luceneMatchVersion>  

  <!-- 索引文件所在目录的根目录 -->
  <dataDir>${solr.data.dir:D:\\03workspaces\\solrQuery\\solrhome\\data}
  </dataDir>  

  <!-- 以什么样的形式创建索引库有内存的方式也有文件的方式 -->
  <directoryFactory name="DirectoryFactory"
      class="${solr.directoryFactory:solr.StandardDirectoryFactory}" />  

  <!-- 索引文档使用的索引形式参数 -->
  <!-- <indexDefaults> -->
  <!-- <mergeFactor>10</mergeFactor> -->
  <!--
      设置在缓存中可以存在的文档数量并且这些文档超过这个数字的时候可以在没有删除
      和刷出的时候将这些文档写到目录中
  -->  

  <!--
      <ramBufferSizeMB>32</ramBufferSizeMB>
      <maxBufferedDocs>1000</maxBufferedDocs>  

      <maxFieldLength>10000</maxFieldLength>
      <writeLockTimeout>1000</writeLockTimeout>
      <commitLockTimeout>10000</commitLockTimeout>
  -->  

  <!--
      <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>
  -->
  <!--
      <mergeScheduler
      class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
  -->  

  <!--
      选择性的指定使用哪个lockFactory的实现
      single = SingleInstanceLockFactory -
      suggested for a read-only index or when there is no possibility of
      another process trying to modify the index.
      native = NativeFSLockFactory -
      uses OS native file locking. Do not use when
      multiple solr webapps in the same JVM are attempting to share a single
      index.
      simple = SimpleFSLockFactory -
      uses a plain file for locking
  -->
  <!-- <lockType>native</lockType>-->  

  <!-- <termIndexInterval>256</termIndexInterval> -->
  <!-- </indexDefaults> -->  

  <!--
      这里的赋值覆盖在<indexDefautls>部分设置的值主要为了配置磁盘索引
  -->
  <mainIndex>
      <useCompoundFile>false</useCompoundFile>
      <ramBufferSizeMB>32</ramBufferSizeMB>
      <mergeFactor>10</mergeFactor>
      <!--
          如果为true,在启动的时候不锁定任何持有写或者提交的锁。 这打败了允许多个程序安全访问lucene索引并且应该小心使用的理论依据。
          如果锁的类型是none或者single这是不许要指定的
      -->
      <unlockOnStartup>false</unlockOnStartup>  

      <!--
          如果为true,索引读取器将重新打开(通常更有效率) 代替关闭索引之后再重新打开索引读取器
      -->
      <reopenReaders>true</reopenReaders>  

      <deletionPolicy class="solr.SolrDeletionPolicy">
          <!--
              最多持有提交点的数量
           -->
          <str name="maxCommitsToKeep">1</str>  

          <!--
               最多持有优化提交点的数量
           -->
          <str name="maxOptimizedCommitsToKeep">0</str>  

          <!--
              一旦达到指定的时间删除所有的提交点
           -->
          <!--
              <str name="maxCommitAge">30MINUTES</str> <str
              name="maxCommitAge">1DAY</str>
          -->
      </deletionPolicy>
      <!-- 将indexWriter执行的调试信息输出到指定文本中 -->
      <!--  <infoStream file="INFOSTREAM.txt">false</infoStream>   -->
  </mainIndex>  

  <!-- 默认高性能的修改处理器 -->
  <updateHandler class="solr.DirectUpdateHandler2">
      <!--
          AutoCommit(自动提交) 在确定条件下自动执行一个提交操作。 考虑使用在添加文档之间的时候进行提交,代替自动提交。  

          http://wiki.apache.org/solr/UpdateXmlMessages maxDocs
          -自从上一次提交之后添加的文档达到最大数量将会触发一个新的提交 maxTime -在文档添加之前自动触发提交这允许通过最大时间量进行计算
      -->
      <!--
          <autoCommit> <maxDocs>10000</maxDocs> <maxTime>1000</maxTime>
          </autoCommit>
      -->  

      <!--
          关联修改事件的监听器 各种索引写入器能够关联事件触发监听器来采取操作 postCommit - fired after every
          commit or optimize command 在每一个提交或者优化命令之后导致触发这个事件 postOptimize -
          fired after every optimize command
      -->
      <!--
          RunExecutableListener从就像postCommit或者postOptimize 这样的钩子执行外部的命令 exe
          -具有运行能力的名字 dir - dir to use as the current working directory.
          (default=".") wait - the calling thread waits until the executable
          returns. (default="true") args - the arguments to pass to the
          program. (default is none) env - 设置java环境变量默认没有 (default is none)
      -->  

      <!--
          This example shows how RunExecutableListener could be used with the
          script based replication...
          http://wiki.apache.org/solr/CollectionDistribution
      -->
      <!--
          <listener event="postCommit" class="solr.RunExecutableListener">
          这里可以执行一个linux shell脚本 或者执行一个windows dos命令 <str
          name="exe">solr/bin/snapshooter</str> <str name="dir">.</str> <bool
          name="wait">true</bool> <arr name="args"> <str>arg1</str>
          <str>arg2</str> </arr> <arr name="env"> <str>MYVAR=val1</str> </arr>
          </listener>
      -->
  </updateHandler>  

  <query>
      <!--  

          booleanQuery能够最多关联的查询单元 如果是多solrcore配置的话只认为最后一个被 加载的core配置的参数有效
      -->
      <maxBooleanClauses>1024</maxBooleanClauses>
      <!-- 过滤器缓存 -->
      <filterCache class="solr.FastLRUCache" size="512"
          initialSize="512" autowarmCount="0" />  

      <!-- 查询结果缓存 -->
      <queryResultCache class="solr.LRUCache" size="512"
          initialSize="512" autowarmCount="0" />  

      <!-- 查询文档缓存 -->
      <documentCache class="solr.LRUCache" size="512"
          initialSize="512" autowarmCount="0" />  

      <!-- 是否延时加载字段 -->
      <enableLazyFieldLoading>true</enableLazyFieldLoading>  

      <queryResultWindowSize>20</queryResultWindowSize>  

      <queryResultMaxDocsCached>200</queryResultMaxDocsCached>  

      <!-- 查询相关事件的监听器 -->
      <listener event="newSearcher" class="solr.QuerySenderListener">
          <arr name="queries">
              <!--
                  <lst><str name="q">solr</str><str name="sort">price asc</str></lst>
                  <lst><str name="q">rocks</str><str name="sort">weight
                  asc</str></lst>
              -->
          </arr>
      </listener>
      <listener event="firstSearcher" class="solr.QuerySenderListener">
          <arr name="queries">
              <lst>
                  <str name="q">static firstSearcher warming in solrconfig.xml
                  </str>
              </lst>
          </arr>
      </listener>
      <useColdSearcher>false</useColdSearcher>
      <maxWarmingSearchers>2</maxWarmingSearchers>
  </query>  

  <requestDispatcher handleSelect="true">
      <requestParsers enableRemoteStreaming="true"
          multipartUploadLimitInKB="2048000" />
      <httpCaching never304="true" />
  </requestDispatcher>  

  <!-- http://host/app/[core/]select?qt=name -->
  <requestHandler name="search" class="solr.SearchHandler"
      default="true">
      <!--
          默认的查询参数能够在这里指定,
          这些参数将会覆盖在http请求中指定的同样的参数值
      -->
      <lst name="defaults">
          <str name="echoParams">explicit</str>
          <int name="rows">10</int>
          <str name="wt">json</str>
      </lst>
      <!--
          不管是什么查询,都将会在所有的查询语句后面追加这里配置 的查询字段 <lst name="appends"> <str
          name="fq">inStock:true</str> </lst>
      -->  

      <!--
         客户端被禁止使用的查询字段
        以及子查询
          <lst name="invariants"> <str name="facet.field">cat</str> <str
          name="facet.field">manu_exact</str> <str name="facet.query">price:[*
          TO 500]</str> <str name="facet.query">price:[500 TO *]</str> </lst>
      -->
  </requestHandler>
</config>  
时间: 2024-10-11 07:49:28

solr中solrconfig.xml详解的相关文章

springmvc在web.xml中的配置详解

                          <servlet> <servlet-name>springMvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-

logback的使用和logback.xml详解,在Spring项目中使用log打印日志

logback的使用和logback.xml详解 一.logback的介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch.它当前分为下面下个模块: logback-core:其它两个模块的基础模块 logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging logback-access:访问模块与Servlet容器集

C#中的Linq to Xml详解

这篇文章主要介绍了C#中的Linq to Xml详解,本文给出转换步骤以及大量实例,讲解了生成xml.查询并修改xml.监听xml事件.处理xml流等内容,需要的朋友可以参考下 操作之前,需要引入 程序集和命名空间 System.Xml.Linq;  一.生成Xml 为了能够在结构有一定的组织,笔者建议大家新建一个控制台项目,并且新建一个CreateXml类(以下部分都属于该类中). 并在其中写入以下属性: 代码如下: public static String Path { get { Stri

Android技术18:Android中Adapter类详解

1.Adapter设计模式 Android中adapter接口有很多种实现,例如,ArrayAdapter,BaseAdapter,CursorAdapter,SimpleAdapter,SimpleCursorAdapter等,他们分别对应不同的数据源.例如,ArrayAdater对应List和数组数据源,而CursorAdapter对应Cursor对象(一般从数据库中获取的记录集).这些Adapter都需要getView方法返回当前列表项显示的View对象.当Model发生改变时,会调用Ba

Ant之build.xml详解

Ant的概念 可能有些读者并不连接什么是Ant以及入可使用它,但只要使用通过Linux系统得读者,应该知道make这个命令.当编译Linux内核及一些软件的源程序时,经常要用这个命令.Make命令其实就是一个项目管理工具,而Ant所实现功能与此类似.像make,gnumake和nmake这些编译工具都有一定的缺陷,但是Ant却克服了这些工具的缺陷.最初Ant开发者在开发跨平台的应用时,用样也是基于这些缺陷对Ant做了更好的设计. Ant 与 makefile Makefile有一些不足之处,比如

Tomcat主配置文件Server.xml详解

Tomcat主配置文件Server.xml详解 1.软件版本 [[email protected] META-INF]# java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode) 2.server.xml组件类别 顶级组件:位于整个配置的

WebService中的WSDL详解

WebService中的WSDL详解 有人在WebService开发的时候,特别是和第三方有接口的时候,走的是SOAP协议,然后用户(或后台)给你一个WSDL文件(或网址),说按照上面的进行适配, 这时就要对WebService的WSDL有一定的理解,本文将对WSDL(WebService描述语言)进行详细总结. WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application,他将Web服务描述定义为一组服务访问点,客户端

Android中HttpURLConnection使用详解

认识Http协议 Android中发送http网络请求是很常见的,要有GET请求和POST请求.一个完整的http请求需要经历两个过程:客户端发送请求到服务器,然后服务器将结果返回给客户端,如下图所示: 客户端->服务器 客户端向服务器发送请求主要包含以下信息:请求的Url地址.请求头以及可选的请求体,打开百度首页,客户端向服务器发送的信息如下所示: 请求URL(Request URL) 上图中的Request URL就是请求的Url地址,即https://www.baidu.com,该Url没

JavaEE学习之Maven配置文件pom.xml详解(转)

一.引言 (本文转载自:http://blog.csdn.net/longeremmy/article/details/9670619) 使用maven有一些时间了,一直没有好好将pom配置文件每个节点的意义好好了解一番.今天突然想来了解下:pom- project object model 项目对象模型.顾名思义,他是用来描述项目信息的,以及构建方式,依赖等.网上有一篇文章写的很详细,这里就借用一下,以备日后使用. 二.详解 1 <project xmlns="http://maven.