Hi!
 I am from china.
With solr4.2.1,if I use cfs file format for my index,such file always been
created in memory,no matter how large it is.When I read the source code,I
found in CompoundFileWriter's method of createOutput:such as.
   [image: Inline image 1]
outputTaken is setted false when initialized.
So the pro always run the first IF, if I use NRTCachingDirectory to create
Output file,the IOContext is the Default ,but the real context,at the end
,this CFS file was created in memory.
 As time goes,My service take more and more memory.It is bad.
So I want to know if this is a bug or samething,if I don't use cfs,there
will have more index files.
What should I do to solve this problem.THANKS!!!!!!

Attach is my config file.

<<image.png>>

<?xml version="1.0" encoding="UTF-8" ?>
<config>

  <luceneMatchVersion>LUCENE_42</luceneMatchVersion>

  <dataDir>${solr.data.dir:}</dataDir>

  <directoryFactory name="DirectoryFactory"  class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"> 
    <double name="maxCachedMB">0.01</double>
  </directoryFactory>

  <codecFactory class="solr.SchemaCodecFactory"/>

  <indexConfig>
  	   <writeLockTimeout>1000</writeLockTimeout>  

       <maxIndexingThreads>16</maxIndexingThreads>  

       <useCompoundFile>true</useCompoundFile> 

       <ramBufferSizeMB>30</ramBufferSizeMB>
       <maxBufferedDocs>10000</maxBufferedDocs>

       <mergePolicy class="org.apache.lucene.index.TieredMergePolicy">
          <int name="maxMergeAtOnce">2</int>
          <int name="segmentsPerTier">2</int>
       </mergePolicy>
       
       <mergeFactor>2</mergeFactor>

       <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>

       <lockType>${solr.lock.type:native}</lockType>

       <unlockOnStartup>true</unlockOnStartup>    
   
       <termIndexInterval>128</termIndexInterval> 

       <reopenReaders>true</reopenReaders>

       <deletionPolicy class="solr.SolrDeletionPolicy">
         <str name="maxCommitsToKeep">1</str>
         <str name="maxOptimizedCommitsToKeep">0</str> 
       </deletionPolicy>

       <infoStream file="/data/logs/solr/INFOSTREAM.txt">true</infoStream> 
  </indexConfig>

  <jmx />
 
  <updateHandler class="solr.DirectUpdateHandler2">
    <updateLog>
      <str name="dir">${solr.ulog.dir:}</str>
    </updateLog>
     <autoCommit> 
       <maxTime>600000</maxTime>
       <maxDocs>2000000</maxDocs> 
       <openSearcher>true</openSearcher> 
     </autoCommit>

     <autoSoftCommit> 
       <maxTime>30000</maxTime> 
     </autoSoftCommit>
     <commitWithin>
       <softCommit>true</softCommit>
     </commitWithin>
  </updateHandler>
  
  <!--
     <indexReaderFactory name="IndexReaderFactory" 
                         class="solr.StandardIndexReaderFactory">
       <int name="setTermIndexDivisor">12</int>
     </indexReaderFactory >
    -->

  <query>
    <maxBooleanClauses>1024</maxBooleanClauses>
  
    <filterCache class="solr.FastLRUCache" size="512" initialSize="128" autowarmCount="0"/>

    <queryResultCache class="solr.LRUCache" size="5000" initialSize="1250"  autowarmCount="0"/>
   
    <documentCache class="solr.LRUCache" size="10000"  initialSize="2500" autowarmCount="0"/>
    
    <!--
       <fieldValueCache class="solr.FastLRUCache"
                        size="512"
                        autowarmCount="128"
                        showItems="32" />
      -->

    <enableLazyFieldLoading>true</enableLazyFieldLoading>

    <useFilterForSortedQuery>true</useFilterForSortedQuery>

   <queryResultWindowSize>100</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">*:*</str>
        </lst>
      </arr>
    </listener>

    <useColdSearcher>true</useColdSearcher>

    <maxWarmingSearchers>1</maxWarmingSearchers>

  </query>

  <requestDispatcher handleSelect="true" >
    <requestParsers enableRemoteStreaming="false" 
                    multipartUploadLimitInKB="2048000"
                    formdataUploadLimitInKB="2048"/>

    <httpCaching never304="true" />
   
    <!--
       <httpCaching never304="true" >
         <cacheControl>max-age=30, public</cacheControl> 
       </httpCaching>
      -->
   
    <!--
       <httpCaching lastModifiedFrom="openTime" etagSeed="Solr">
         <cacheControl>max-age=30, public</cacheControl> 
       </httpCaching>
      -->
  </requestDispatcher>

  <requestHandler name="/select" class="solr.SearchHandler">
    <!-- default values for query parameters can be specified, these
         will be overridden by parameters in the request
      -->
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <int name="rows">10</int>
       <bool name="hl">true</bool>
       <str name="hl.fl">content</str>
       <!--<int name="hl.snippets">1</int>
       <int name="hl.fragsize">11000</int>
       <str name="hl.alternateField">content</str>
       <bool name="hl.usePhraseHighlighter">true</bool>
       <int name="hl.maxAlternateFieldLength">120</int>-->
       
       <bool name="facet">false</bool>   
       <str name="facet.field">fatherID</str>
   	   <str name="facet.query">*:*</str>
     </lst>

    <!--
       <lst name="appends">
         <str name="fq">inStock:true</str>
       </lst>
     <lst name="invariants">
      <bool name="hl.mergeContiguous">true</bool>
      <bool name="hl.useFastVectorHighlighter">true</bool>
      <str name="hl.tag.pre"><![CDATA[<font style="background-color:#84C1FF">]]></str>
      <str name="hl.tag.post"><![CDATA[</font>]]></str>
     </lst>-->
   
      <arr name="components">
         <str>query</str>
         <str>highlight</str>
         <str>facet</str>
       </arr>
    </requestHandler>

  <requestHandler name="/query" class="solr.SearchHandler">
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <str name="wt">json</str>
       <str name="indent">true</str>
       <str name="df">text</str>
     </lst>
  </requestHandler>

  <requestHandler name="/get" class="solr.RealTimeGetHandler">
     <lst name="defaults">
       <str name="omitHeader">true</str>
       <str name="wt">json</str>
       <str name="indent">true</str>
     </lst>
  </requestHandler>

  <requestHandler name="/update" class="solr.UpdateRequestHandler">
    <!--
       <lst name="defaults">
         <str name="update.chain">dedupe</str>
       </lst>
       -->
  </requestHandler>
 
  <requestHandler name="/update/json" class="solr.JsonUpdateRequestHandler">
        <lst name="defaults">
         <str name="stream.contentType">application/json</str>
       </lst>
  </requestHandler>

  <requestHandler name="/analysis/field" 
                  startup="lazy"
                  class="solr.FieldAnalysisRequestHandler" />

  <requestHandler name="/analysis/document" 
                  class="solr.DocumentAnalysisRequestHandler" 
                  startup="lazy" />

  <requestHandler name="/admin/" 
                  class="solr.admin.AdminHandlers" />

  <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
    <lst name="invariants">
      <str name="q">solrpingquery</str>
    </lst>
    <lst name="defaults">
      <str name="echoParams">all</str>
    </lst>
    <!-- <str name="healthcheckFile">server-enabled.txt</str> -->
  </requestHandler>

  <requestHandler name="/debug/dump" class="solr.DumpRequestHandler" >
    <lst name="defaults">
     <str name="echoParams">explicit</str> 
     <str name="echoHandler">true</str>
    </lst>
  </requestHandler>
  
  <requestHandler name="/replication" class="solr.ReplicationHandler" > 
    <!--
       <lst name="master">
         <str name="replicateAfter">commit</str>
         <str name="replicateAfter">startup</str>
         <str name="confFiles">schema.xml,stopwords.txt</str>
       </lst>
    -->
    <!--
       <lst name="slave">
         <str name="masterUrl">http://your-master-hostname:8983/solr</str>
         <str name="pollInterval">00:00:60</str>
       </lst>
    -->
  </requestHandler>
  
  <searchComponent name="terms" class="solr.TermsComponent"/>

  <requestHandler name="/terms" class="solr.SearchHandler" startup="lazy">
     <lst name="defaults">
      <bool name="terms">true</bool>
      <bool name="distrib">false</bool>
    </lst>     
    <arr name="components">
      <str>terms</str>
    </arr>
  </requestHandler>

  <searchComponent class="solr.HighlightComponent" name="highlight">
    <highlighting class="org.apache.lucene.search.vectorhighlight.SispHighlighter" >
       <lst name="defaults">
          <str name="hl.simple.pre"><![CDATA[<font style="background-color:#84C1FF">]]></str>
          <str name="hl.simple.post"><![CDATA[</font>]]></str>
      </lst>
  </highlighting> 
  </searchComponent>

  <queryResponseWriter name="xml"  default="true"  class="solr.XMLResponseWriter4IfengFilter" />
 
   <queryResponseWriter name="rebuild" class="solr.XMLRebuildWriter" />
  <queryResponseWriter name="json" class="solr.JSONResponseWriter">
    <str name="content-type">text/plain; charset=UTF-8</str>
  </queryResponseWriter>
  
  <queryResponseWriter name="xslt" class="solr.XSLTResponseWriter">
    <int name="xsltCacheLifetimeSeconds">5</int>
  </queryResponseWriter>

  <admin>
    <defaultQuery>*:*</defaultQuery>
  </admin>

</config>

Reply via email to