W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
solr.xml 文件定義了適用于全部或多個(gè)內(nèi)核的全局配置選項(xiàng)。
本節(jié)將介紹Solr附帶的默認(rèn)的solr.xml文件以及如何根據(jù)需要對其進(jìn)行修改。有關(guān)如何配置core.properties的詳細(xì)信息,請參閱“定義core.properties”一節(jié)。
您可以在您的$SOLR_HOME目錄(通常是:server/solr)中以獨(dú)立模式,或者在使用SolrCloud時(shí)在ZooKeeper中找到solr.xml。默認(rèn)solr.xml文件如下所示:
<solr>
<solrcloud>
<str name="host">${host:}</str>
<int name="hostPort">${jetty.port:8983}</int>
<str name="hostContext">${hostContext:solr}</str>
<int name="zkClientTimeout">${zkClientTimeout:15000}</int>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
</solrcloud>
<shardHandlerFactory name="shardHandlerFactory"
class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:0}</int>
<int name="connTimeout">${connTimeout:0}</int>
</shardHandlerFactory>
</solr>
如您所見,發(fā)現(xiàn) Solr 配置是“SolrCloud 友好的”。但是,<solrcloud>元素的存在并不意味著Solr實(shí)例在SolrCloud模式下運(yùn)行。除非在啟動時(shí)指定了-DzkHost或-DzkRun,本節(jié)被忽略。
沒有屬性可以在<solr>標(biāo)簽中指定,這是solr.xml的根元素。下表列出了solr.xml中每個(gè)XML元素的子節(jié)點(diǎn)。
這個(gè)屬性不需要設(shè)置。
如果使用,則應(yīng)將此屬性設(shè)置為繼承自CoreAdminHandler的類的FQN(完全限定名稱)。例如,<str name="adminHandler">com.myorg.MyAdminHandler</str>
將配置自定義管理處理程序(MyAdminHandler)來處理管理請求。
如果這個(gè)屬性沒有設(shè)置,Solr使用默認(rèn)的管理處理程序,org.apache.solr.handler.admin.CoreAdminHandler
。
如上所述,用于自定義CollectionsHandler實(shí)現(xiàn)。
如上所述,用于自定義InfoHandler實(shí)現(xiàn)。
指定將分配給并行加載內(nèi)核的線程數(shù)。
核心發(fā)現(xiàn)樹的根目錄,默認(rèn)為$SOLR_HOME
(默認(rèn)server/solr
)。
目前不可操作。
指定將在所有內(nèi)核之間共享的公用庫目錄的路徑。此目錄中的任何JAR文件都將被添加到Solr插件的搜索路徑中。這條路是相對$SOLR_HOME
的。自定義處理程序可能被放置在這個(gè)目錄中。
此屬性設(shè)置為true
,可確保指向同一個(gè)Schema資源文件的多個(gè)核心將引用同一個(gè)IndexSchema對象。共享IndexSchema對象使加載核心更快。如果您使用此功能,請確保您的架構(gòu)文件中沒有使用特定于核心的屬性。
定義transient=true
在最近使用最少的內(nèi)核之前,可以加載多少個(gè)內(nèi)核。
可以找到用于Solr核心的configSets的目錄。默認(rèn)為$SOLR_HOME/configsets
。
這個(gè)元素定義了幾個(gè)與SolrCloud相關(guān)的參數(shù)。除非Solr實(shí)例以-DzkRun或-DzkHost開始,否則這部分被忽略。
用于設(shè)置集群內(nèi)部更新的基礎(chǔ)connTimeout
。
用于設(shè)置集群內(nèi)部更新的基礎(chǔ)socketTimeout
。
Solr用于訪問核心的主機(jī)名稱。
url上下文路徑。
Solr端口用于訪問內(nèi)核。
在默認(rèn)solr.xml
文件中,設(shè)置為${jetty.port:8983}
,將使用Jetty中定義的Solr端口,否則返回到8983。
當(dāng)SolrCloud啟動時(shí),每個(gè)Solr節(jié)點(diǎn)將等待該分片的所有已知副本多長時(shí)間,然后才能假定任何未報(bào)告的節(jié)點(diǎn)已關(guān)閉。
當(dāng)試圖為碎片選擇一個(gè)引線時(shí),該屬性設(shè)置副本將等待查看沖突的狀態(tài)信息以待解決的最大時(shí)間;在進(jìn)行滾動重啟時(shí),特別是當(dāng)托管監(jiān)督員的節(jié)點(diǎn)重新啟動時(shí),可能會出現(xiàn)狀態(tài)信息中的臨時(shí)沖突。
通常,180000
(ms)的默認(rèn)值足以解決沖突;如果您在SolrCloud中有數(shù)百或數(shù)千個(gè)小集合,則可能需要增加此值。
連接到ZooKeeper服務(wù)器的超時(shí)。它與SolrCloud一起使用。
在SolrCloud模式下,Solr應(yīng)該用于集群狀態(tài)信息的ZooKeeper主機(jī)的URL。
如果為TRUE
,則節(jié)點(diǎn)名稱不是基于節(jié)點(diǎn)的地址,而是基于標(biāo)識核心的通用名稱。當(dāng)一臺不同的機(jī)器接管服務(wù)的時(shí)候,核心的東西就會更容易理解。
如果使用ZooKeeper訪問控制,則這是可以指定的可選參數(shù)。
用于記錄的類。相應(yīng)的JAR文件必須可用于Solr,也許通過solrconfig.xml
中的一個(gè)<lib>
指令。
true / false - 是否啟用日志記錄。
緩沖的日志事件的數(shù)量。
您的特定日志記錄實(shí)現(xiàn)將記錄到的日志記錄級別。例如,當(dāng)使用 log4j 時(shí),可以指定DEBUG,WARN,INFO等。
如果您希望創(chuàng)建自定義分片處理程序,則可以在solr.xml定義自定義分片處理程序:
<shardHandlerFactory name="ShardHandlerFactory" class="qualified.class.name">
由于這是自定義分片處理程序,因此子元素是特定于實(shí)現(xiàn)的。Solr提供的默認(rèn)和唯一的分片處理程序是HttpShardHandlerFactory,在這種情況下,可以指定以下子元素:
群集內(nèi)查詢和管理請求的讀取超時(shí)。默認(rèn)值與<solrcloud>
節(jié)中指定的distribUpdateSoTimeout
相同。
群集內(nèi)查詢和管理請求的連接超時(shí)。默認(rèn)為distribUpdateConnTimeout
在該<solrcloud>
部分中指定的。
要在分布式搜索中使用的URL方案。
每個(gè)主機(jī)允許的最大連接數(shù),默認(rèn)為20
。
允許的最大連接總數(shù)。默認(rèn)為10000
。
線程池服務(wù)請求的初始核心大小。默認(rèn)是0
。
線程池服務(wù)請求的最大大小。默認(rèn)是無限的。
空閑線程在被殺死之前在隊(duì)列中持續(xù)的時(shí)間(以秒為單位)。默認(rèn)是5
秒。
如果線程池使用后備隊(duì)列,則使用直接切換的最大大小是多少?默認(rèn)是使用SynchronousQueue。
一個(gè)布爾值,用于配置線程池是否支持吞吐量的公平性。缺省值為false以支持吞吐量。
solr.xml中的<metrics>元素允許您自定義Solr報(bào)告的度量標(biāo)準(zhǔn)。您可以定義不應(yīng)該返回的系統(tǒng)屬性,或定義自定義供應(yīng)商和記者。
在默認(rèn)的 solr. xml 中,您將看不到任何<metrics>配置。如果您想為您的安裝自定義度量標(biāo)準(zhǔn),請參閱“指標(biāo)配置”部分。
Solr支持在solr.xml的JVM系統(tǒng)屬性值的變量替換,它允許運(yùn)行時(shí)指定各種配置選項(xiàng)。語法是:${propertyname[:option default value]}。這允許定義Solr啟動時(shí)可以覆蓋的默認(rèn)值。如果未指定默認(rèn)值,則必須在運(yùn)行時(shí)指定該屬性,否則該solr.xml文件將在分析時(shí)生成錯(cuò)誤。
在啟動JVM時(shí)通常使用-D標(biāo)志指定的任何JVM系統(tǒng)屬性都可以用作solr.xml文件中的變量。
例如,在下面顯示的solr.xml文件中,socketTimeout和connTimeout值都被設(shè)置為“0”。但是,如果您使用bin/solr -DsocketTimeout=1000開啟Solr,則HttpShardHandlerFactory的socketTimeout的選項(xiàng)要使用1000毫秒的值覆蓋,而重寫的connTimeout選項(xiàng)將繼續(xù)使用默認(rèn)屬性值“0”。
<solr>
<shardHandlerFactory name="shardHandlerFactory"
class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:0}</int>
<int name="connTimeout">${connTimeout:0}</int>
</shardHandlerFactory>
</solr>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: