solr核心solrconfig.xml配置详解

本文深入解析Solr的solrconfig.xml配置文件,涵盖Lucene版本、数据目录、索引锁类型、更新处理、查询响应配置及主从设置等关键内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

solr核心solrconfig.xml配置详解


solrconfig.xml是核心的主要配置,配置core的主要信息

<?xml version="1.0" encoding="UTF-8" ?>
<config>
  <luceneMatchVersion>7.2.2</luceneMatchVersion>
  <!-- 指定数据存放目录,默认./data -->
  <!-- <dataDir>${solr.data.dir:}</dataDir> -->
  <!-- 目录实现工厂, 默认的 NRTCachingDirectoryFactory 是基于文件系统的,并且试图为当前的JVM和平台选择最好的实现-->
  <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
  
  <!-- 索引配置 -->
  <indexConfig>
    <!-- 索引锁
    native:默认值,使用NativeFSLockFactory指定本机操作系统文件锁定。如果第二个Solr进程试图访问该目录,
            它将会失败。当多个Solr Web应用程序试图共享单个索引时,请勿使用它们
     -->
    <lockType>native</lockType>
    <!-- 输出建索引日志 -->
    <infoStream>false</infoStream>
  </indexConfig>
  
  <!-- 更新索引配置
       硬提交:可以立即搜索到,数据会立即持久化到磁盘
       软提交:可以立即搜索到,数据不会立即持久化到磁盘
   -->
  <updateHandler class="solr.DirectUpdateHandler2">
     <!-- 自动硬提交 -->
     <autoCommit>
       <!-- 间隔多少秒进行一次硬提交 -->
       <maxTime>-1</maxTime>
       <!-- 是否打开搜索器
            true:可以搜索到,并且会立即持久化到磁盘,性能消耗比较高
            false:可以搜索到,但是不会立即存储到磁盘,性能消耗比较低 -->
       <openSearcher>false</openSearcher>
     </autoCommit>
     <!-- 自动软提交 -->
     <autoSoftCommit>
       <maxTime>-1</maxTime>
     </autoSoftCommit>
  </updateHandler>

  <!-- solr查询响应相关配置 -->
  <query>
    <!-- 设置查询最多的条件,默认为1024  -->
    <maxBooleanClauses>1024</maxBooleanClauses>
    <!-- 大于多少毫秒的查询记录日志 -->
    <slowQueryThresholdMillis>2000</slowQueryThresholdMillis>
    <!-- 缓存设置
         size:可缓存的最大条数
         initialSize:初始化时的大小
         autowarmCount:当切换 SolrIndexSearcher 时,对新的 searcher 做预热处理,
                        值为从旧的 searcher 取多少项到新 searcher 重新生成
     -->
    <!-- 过滤器缓存 -->
    <!-- <filterCache class="solr.FastLRUCache" size="0" initialSize="0" autowarmCount="0"/> -->
    <!-- 查询缓存 -->
    <!-- <queryResultCache class="solr.LRUCache" size="0" initialSize="0" autowarmCount="0"/> -->
    <!-- lucene documents缓存 -->
    <!-- <documentCache class="solr.LRUCache" size="0" initialSize="0" autowarmCount="0"/> -->
    <!-- 如果设置为true,则不直接请求的字段将根据需要延迟加载 -->
    <enableLazyFieldLoading>true</enableLazyFieldLoading>
    <!-- 与queryResultCache此一起使用时,这将缓存请求数量的文档ID的超集。
         例如,如果响应于特定查询的搜索请求文档10到19,并且queryWindowSize是50,则文档0到49将被高速缓存。 -->
    <!-- <queryResultWindowSize>20</queryResultWindowSize> -->
    <!-- 此参数设置要缓存的文档的最大数量queryResultCache -->
    <!-- <queryResultMaxDocsCached>20</queryResultMaxDocsCached> -->
    <!-- 是否使用冷搜索 -->
    <useColdSearcher>false</useColdSearcher>
  </query>

  <!-- 数据源配置,如需使用数据库作为数据源则可以此配置,并在当前目录配置data-config.xml文件
  <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
      <lst name="defaults">
          <str name="config">data-config.xml</str>
      </lst>
  </requestHandler>
   -->
  <!-- 主从配置 -->
  <requestHandler name="/replication" class="solr.ReplicationHandler">
    <!-- 主服务器配置  -->
    <lst name="master">   
       <!-- 执行 commit 操作后进行 replicate 操作同样的设置’startup’, 
‘commit’, ‘optimize’ --> 
       <str name="replicateAfter">commit</str>   
       <!-- 执行 startup 操作后进行 replicate 操作 --> 
       <str name="replicateAfter">startup</str> 
       <!-- 复制索引时也同步以下配置文件 --> 
       <str name="confFiles">managed-schema,stopwords.txt</str>  
     </lst>
     <!-- 从服务器配置  -->
     <lst name="slave">  
         <!-- 主服务器的URL -->
        <str name="masterUrl">http://192.168.1.168:8983/solr/testCore</str>  
        <!-- 间隔多久进行一次同步操作(时:分:秒) -->
        <str name="pollInterval">00:00:10</str>  
        <!-- 压缩机制,来传输索引, 可选internal|external, internal内网, external外网 -->
        <str name="compression">internal</str>  
        <!-- 设置超时时间 -->
        <str name="httpConnTimeout">50000</str>     
        <str name="httpReadTimeout">500000</str>     
        <!-- 验证信息, 要与master服务器匹配 -->
        <str name="httpBasicAuthUser">admin</str>     
        <str name="httpBasicAuthPassword">admin</str>     
      </lst> 
  </requestHandler>
  <!-- 查询配置 -->
  <requestHandler name="/select" class="solr.SearchHandler">
     <lst name="defaults">
       <!-- 返回的responseHeader里包含哪些信息
            explicit:默认值
            all:包含所有对查询有用的参数
            none: 不显示params的信息 -->
       <str name="echoParams">explicit</str>
       <!-- 定义默认查询的字段 -->
       <str name="df">title</str>
       <!-- 定义分词时用"AND"还是用"OR"操作逻辑 -->
       <str name="q.op">AND</str>
       <!-- 默认显示多少条 -->
       <int name="rows">10</int>
     </lst>
  </requestHandler>
</config>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸鱼c_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值