读书人

solr的配备参数理解

发布时间: 2012-10-28 09:54:44 作者: rapoo

solr的配置参数理解

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>

<updateHandler Related Event Listeners

??? ...
?
??? <!-- The RunExecutableListener executes an external command.
???????? exe? - the name of the executable to run
???????? 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=nothing
???????? env? - environment variables to set.? default=nothing
????? -->
??? <!-- A postCommit event is fired after every commit
????? -->
??? <listener event="postCommit" />

<query>
??? <!-- Maximum number of clauses in a boolean query... can affect range 
?????????or wildcard queries that expand to big boolean queries.? 
?????????An exception is thrown if exceeded.
??? -->
??? <maxBooleanClauses>1024</maxBooleanClauses>

<!-- Cache used by SolrIndexSearcher for filters (DocSets),
???????? unordered sets of *all* documents that match a query.
???????? When a new searcher is opened, its caches may be prepopulated
???????? or "autowarmed" using data from caches in the old searcher.
???????? autowarmCount is the number of items to prepopulate.? For LRUCache,
???????? the autowarmed items will be the most recently accessed items.
?????? Parameters:
???????? class - the SolrCache implementation (currently only LRUCache)
???????? size - the maximum number of entries in the cache
???????? initialSize - the initial capacity (number of entries) of
?????????? the cache.? (seel java.util.HashMap)
???????? autowarmCount - the number of entries to prepopulate from
?????????? and old cache.
???????? -->
?? ?<filterCache
????? loadFactor="0.75"/>
?
?
??? <!-- boolToFilterOptimizer converts boolean clauses with zero boost
???????? cached filters if the number of docs selected by the clause exceeds the
???????? threshold (represented as a fraction of the total index)
??? -->
??? <boolTofilterOptimizer enabled="true" cacheSize="32" threshold=".05"/>
?
??? <!-- Lazy field loading will attempt to read only parts of documents on disk that are 
?????????requested.? Enabling should be faster if you aren't retrieving all stored fields.
??? -->
??? <enableLazyFieldLoading>false</enableLazyFieldLoading>

<!-- a newSearcher event is fired whenever a new searcher is being
???????? prepared and there is a current searcher handling requests 
?????????(aka registered). 
?????-->
??? <!-- QuerySenderListener takes an array of NamedList and 
?????????executes a local query request for each NamedList in sequence.
???? -->
??? <!--
??? <listener event="newSearcher" />

<!-- a firstSearcher event is fired whenever a new searcher is being
???????? prepared but there is no current registered searcher to handle 
?????????requests or to gain prewarming data from.
???? -->
??? <!--
??? <listener event="firstSearcher" style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt;"><span style="font-family: Wingdings;"><span><span style="font-size: small;">l</span><span>  </span></span></span><span style="font-size: small;"><strong><span lang="EN-US">dataDir</span></strong><strong><span>参数</span></strong><strong></strong></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span>用于替换默认的索引数据目录(</span><span lang="EN-US">./data</span><span>)。如果重复指定,将使用重复的值。如果不是绝对路径,将使用</span><span lang="EN-US">servlet</span><span>容器当前</span><span>工作目录下的相对路径。</span></span></p>
<div style="background: #f3f5f7; border: #aebdcc 1pt solid; padding: 5pt;">
<p align="left" style="text-align: left; line-height: 15pt; margin: 0cm 0cm 0pt; background: #f3f5f7; padding: 0cm;"><span lang="EN-US"><dataDir>/var/data/solr</dataDir></span></p>
</div>
<p style="margin: 0cm 0cm 0pt;"><strong><span lang="EN-US"><span style="font-size: small;"> </span></span></strong></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt;"><span style="font-family: Wingdings;"><span><span style="font-size: small;">l</span><span> </span></span></span><span style="font-size: small;"><strong><span lang="EN-US">mainIndex</span></strong><strong><span>参数部分</span></strong><strong></strong></span></p>
<div style="background: #f3f5f7; border: #aebdcc 1pt solid; padding: 5pt;">
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;">mainIndex></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><!-- lucene options specific to the main on-disk lucene index --></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><useCompoundFile>false</useCompoundFile></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><mergeFactor>10</mergeFactor></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><maxBufferedDocs>1000</maxBufferedDocs></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><maxMergeDocs>2147483647</maxMergeDocs></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><maxFieldLength>10000</maxFieldLength></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span></mainIndex></span></span></pre>
</div>
<p style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small;"> </span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span>【</span><span lang="EN-US">mergeFactor</span><span>】</span><span>指定同样大小的</span><span lang="EN-US">segment</span><span>达到多少时会被合并。如果你设置改值为</span><span lang="EN-US">10</span><span>,那么每当</span><span lang="EN-US">1000</span><span>(</span><span lang="EN-US">maxBufferedDocs</span><span>)个</span><span lang="EN-US">doc</span><span>被添加到索引时(它们可能在内存中),一个新的</span><span lang="EN-US">sgement</span><span>将在硬盘上创建,当第</span><span lang="EN-US">10</span><span>个同样大小的</span><span lang="EN-US">segment</span><span>被创建后,这</span><span lang="EN-US">10</span><span>个</span><span lang="EN-US">segement </span><span>将被合并成一个包含</span><span lang="EN-US">10000</span><span>(</span><span lang="EN-US">10*1000</span><span>)个</span><span lang="EN-US">doc</span><span>的</span><span lang="EN-US">segment</span><span>。同样当第</span><span lang="EN-US">10</span><span>个包含</span><span lang="EN-US">10000</span><span>个</span><span lang="EN-US">doc</span><span>的</span><span lang="EN-US">segment</span><span>被创建的时候,他们将合并成更大的</span><span lang="EN-US">segment</span><span>。当然这种合并并不是无休止的。这是因为下面的参数对其进行了限制。</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span>【</span><span lang="EN-US">maxMergeDocs</span><span>】每个</span><span lang="EN-US">segment</span><span>所能容纳的</span><span lang="EN-US">doc</span><span>数目上限。</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span>【</span><span lang="EN-US">maxFieldLength</span><span>】指定每个</span><span lang="EN-US">field</span><span>的最大长度。</span></span></p>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt;"><span style="font-family: Wingdings;"><span><span style="font-size: small;">l</span><span> </span></span></span><span style="font-size: small;"><strong><span lang="EN-US">Update Handler </span></strong><strong><span>参数部分</span></strong><strong></strong></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span>这部分通常是关于内部如如何处理</span><span lang="EN-US">update</span><span>低级配置信息(不要与处理客户端发送的</span><span lang="EN-US">update</span><span>的</span><span lang="EN-US">Request Handler</span><span>高级配置信息相混淆)。</span></span></p>
<div style="background: #f3f5f7; border: #aebdcc 1pt solid; padding: 5pt;">
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><updateHandler style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt;"><span style="font-family: Wingdings;"><span><span style="font-size: small;">l</span><span> </span></span></span><span style="font-size: small;"><strong><span>与更新相关的事件监听器(</span></strong><strong><span lang="EN-US">"Update" Related Event Listeners</span></strong><strong><span>)</span></strong><strong></strong></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span>为与特殊更新相关的事件(</span><span lang="EN-US">"postCommit" </span><span>和</span><span lang="EN-US"> "postOptimize".</span><span>)指定监听器。监听器能触发任意的特殊代码,它们的典型应用是快照功能。</span></span></p>
<div style="background: #f3f5f7; border: #aebdcc 1pt solid; padding: 5pt;">
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>...</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"> </span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><!-- The RunExecutableListener executes an external command.</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>exe<span> </span>- the name of the executable to run</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>dir<span> </span>-<span> </span>dir to use as the current working directory. default="."</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>wait - the calling thread waits until the executable returns. </span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>default="true"</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>args - the arguments to pass to the program.<span> </span>default=nothing</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>env<span> </span>- environment variables to set.<span> </span>default=nothing</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>--></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><!-- A postCommit event is fired after every commit</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>--></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><listener event="postCommit" style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt;"><span style="font-family: Wingdings;"><span><span style="font-size: small;">l</span><span> </span></span></span><span style="font-size: small;"><strong><span>查询参数部分(</span></strong><strong><span lang="EN-US">The Query Section</span></strong><strong><span>)</span></strong><strong></strong></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span>控制与查询相关的一切。</span></span></p>
<div style="background: #f3f5f7; border: #aebdcc 1pt solid; padding: 5pt;">
<pre><span style="font-size: 10.5pt; color: black;"><span style="font-family: Courier;"><query></span></span></pre>
<pre><span style="font-size: 10.5pt; color: black;"><span style="font-family: Courier;"><span> </span><!-- Maximum number of clauses in a boolean query... can affect range </span></span></pre>
<pre><span style="font-size: 10.5pt; color: black;"><span style="font-family: Courier;"><span> </span>or wildcard queries that expand to big boolean queries.<span> </span></span></span></pre>
<pre><span style="font-size: 10.5pt; color: black;"><span style="font-family: Courier;"><span> </span>An exception is thrown if exceeded.</span></span></pre>
<pre><span style="font-size: 10.5pt; color: black;"><span style="font-family: Courier;"><span> </span>--></span></span></pre>
<pre><span style="font-size: 10.5pt; color: black;"><span style="font-family: Courier;"><span> </span><maxBooleanClauses>1024</maxBooleanClauses></span></span></pre>
</div>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt;"><span style="font-family: Wingdings;"><span><span style="font-size: small;">l</span><span> </span></span></span><span style="font-size: small;"><strong><span>缓存参数部分(</span></strong><strong><span lang="EN-US">Caching Section</span></strong><strong><span>)</span></strong><strong></strong></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span>当你的索引量增加或变化的时候,你需要在这里进行配置。关于缓存配置的更多细节请点</span><span lang="EN-US"><a href="http://wiki.apache.org/solr/SolrCaching"><span lang="EN-US"><span lang="EN-US">这里</span></span></a></span><span>。</span></span></p>
<div style="background: #f3f5f7; border: #aebdcc 1pt solid; padding: 5pt;">
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><!-- Cache used by SolrIndexSearcher for filters (DocSets),</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>unordered sets of *all* documents that match a query.</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>When a new searcher is opened, its caches may be prepopulated</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>or "autowarmed" using data from caches in the old searcher.</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>autowarmCount is the number of items to prepopulate.<span> </span>For LRUCache,</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>the autowarmed items will be the most recently accessed items.</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>Parameters:</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>class - the SolrCache implementation (currently only LRUCache)</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>size - the maximum number of entries in the cache</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>initialSize - the initial capacity (number of entries) of</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>the cache.<span> </span>(seel java.util.HashMap)</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>autowarmCount - the number of entries to prepopulate from</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>and old cache.</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>--></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><span> </span><filterCache</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>loadFactor="0.75"/></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"> </span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"> </span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><!-- boolToFilterOptimizer converts boolean clauses with zero boost</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>cached filters if the number of docs selected by the clause exceeds the</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>threshold (represented as a fraction of the total index)</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>--></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><boolTofilterOptimizer enabled="true" cacheSize="32" threshold=".05"/></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"> </span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><!-- Lazy field loading will attempt to read only parts of documents on disk that are </span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>requested.<span> </span>Enabling should be faster if you aren't retrieving all stored fields.</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>--></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><enableLazyFieldLoading>false</enableLazyFieldLoading></span></span></pre>
</div>
<p style="text-indent: -21pt; margin: 0cm 0cm 0pt 21pt;"><span style="font-family: Wingdings;"><span><span style="font-size: small;">l</span><span> </span></span></span><span style="font-size: small;"><strong><span>查询相关的事件监听器参数配置(</span></strong><strong><span lang="EN-US">"Query" Related Event Listeners</span></strong><strong><span>)</span></strong><strong></strong></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span>在这里定义与特殊查询相关的事件监听器,使用该监听器实现需要的代码,例如启动常用的查询去预热缓存。</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span>【</span><span lang="EN-US">newSearcher</span><span>】</span><span> </span><span>在有注册搜索器存在的时启动一个新的搜索器,下例中的监听器就是这类,它获得查询列表并将它们发送到新的搜索器以达到预热的目的。</span></span></p>
<div style="background: #f3f5f7; border: #aebdcc 1pt solid; padding: 5pt;">
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><!-- a newSearcher event is fired whenever a new searcher is being</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>prepared and there is a current searcher handling requests </span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>(aka registered). </span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>--></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><!-- QuerySenderListener takes an array of NamedList and </span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>executes a local query request for each NamedList in sequence.</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>--></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><!--</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><listener event="newSearcher" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span>【</span><span lang="EN-US">firstSearcher</span><span>】</span></span></p>
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span>当不存在已注册的搜索器时启动新的</span><span lang="EN-US">firstSearcher</span><span>。下例正式如此,该监听器获得查询列表将其发送到正启动的新的搜索器,将其预热。(注意,只有当存在已注册搜索器的时候才可以使用自动预热</span><span lang="EN-US">auto-warming</span><span>)</span></span></p>
<div style="background: #f3f5f7; border: #aebdcc 1pt solid; padding: 5pt;">
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><!-- a firstSearcher event is fired whenever a new searcher is being</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>prepared but there is no current registered searcher to handle </span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>requests or to gain prewarming data from.</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span>--></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><!--</span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><listener event="firstSearcher" class="solr.QuerySenderListener"></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><arr name="queries"></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><lst> <str name="q">fast_warm</str> </span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><str name="start">0</str></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span><str name="rows">10</str></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span></lst></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span></arr></span></span></pre>
<pre><span style="font-size: 9pt; color: black;"><span style="font-family: Courier;"><span> </span></listener></span></span></pre>
</div>
</div>
<p>?</p>

读书人网 >软件架构设计

热点推荐