W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在Solr中solrconfig.xml文件是影響Solr本身參數(shù)最多的配置文件。
在配置Solr時(shí),您會(huì)經(jīng)常使用到solrconfig.xml,不論是直接或通過(guò)Config API創(chuàng)建“配置覆蓋”(configoverlay.json)以覆蓋solrconfig.xml中的值。
在solrconfig.xml中,您需要配置下述的一些重要的功能,如:
該solrconfig.xml文件位于每個(gè)集合的conf/目錄中。在server/solr/configsets/目錄中可以找到幾個(gè)備受好評(píng)的示例文件,演示了許多不同類型安裝的最佳實(shí)踐。
我們將介紹以下部分的選項(xiàng):
Solr支持在配置文件中屬性值的變量替換,允許在solrconfig.xml中使用各種配置選項(xiàng)的運(yùn)行時(shí)規(guī)范語(yǔ)法是:${propertyname[:option default value]}。這允許定義在Solr啟動(dòng)時(shí)可以覆蓋的默認(rèn)值。如果未指定默認(rèn)值,則必須在運(yùn)行時(shí)指定該屬性,否則配置文件在解析時(shí)將生成錯(cuò)誤。
在下面的內(nèi)容中,有多種方法可以用于指定可以在配置文件中使用的屬性。其中,強(qiáng)烈認(rèn)為“配置覆蓋”作為首選方法,因?yàn)樗3直镜嘏渲眉?,而且它很容易修改?/p>
在啟動(dòng)JVM時(shí),通常使用-D標(biāo)志指定的任何 JVM 系統(tǒng)屬性都可用作 Solr 中任何 XML 配置文件中的變量。
例如,在示例solrconfig.xml文件中,您將看到這個(gè)定義要使用的鎖定類型的值:
<lockType>${solr.lock.type:native}</lockType>
這意味著鎖定類型默認(rèn)為“native”,但是當(dāng)啟動(dòng)Solr時(shí),可以通過(guò)啟動(dòng)Solr來(lái)使用JVM系統(tǒng)屬性來(lái)覆蓋它:
bin/solr start -Dsolr.lock.type=none
通常,您要設(shè)置的任何Java系統(tǒng)屬性都可以使用標(biāo)準(zhǔn)-Dproperty=value語(yǔ)法通過(guò)bin/solr腳本傳遞。或者,您可以將通用的系統(tǒng)屬性添加到Solr包含文件(bin/solr.in.sh或bin/solr.in.cmd)中定義的SOLR_OPTS環(huán)境變量。有關(guān)Solr包含文件如何工作的更多信息,請(qǐng)參閱:將Solr應(yīng)用到生產(chǎn)。
配置API允許您使用一個(gè)API來(lái)修改Solr的配置,特別是用戶定義的屬性。使用此API進(jìn)行的更改存儲(chǔ)在名為configoverlay.json的文件中。這個(gè)文件只能用API進(jìn)行編輯,看起來(lái)像下面這個(gè)例子:
{"userProps":{
"dih.db.url":"jdbc:oracle:thin:@localhost:1521",
"dih.db.user":"username",
"dih.db.pass":"password"}}
有關(guān)更多詳細(xì)信息,請(qǐng)參閱配置API部分。
如果Solr核心的配置目錄包含一個(gè)名為solrcore.properties的文件,則可以使用Java標(biāo)準(zhǔn)屬性文件格式包含任意用戶定義的屬性名稱和值,并且這些屬性可以在該Solr核心的XML配置文件中用作變量。
例如,可以使用一個(gè)示例配置在集合的conf/目錄中創(chuàng)建以下solrcore.properties文件,以覆蓋所使用的lockType。
#conf/solrcore.properties
solr.lock.type=none
注意:solrcore.properties 屬性不會(huì)在 SolrCloud 模式下工作(不從ZooKeeper讀?。?。將來(lái)可能會(huì)刪除此功能。相反,可以使用另一種機(jī)制,如配置疊加。
solrcore.properties 文件的路徑和名稱可以使用 core.properties 中的 properties 屬性重寫。
每個(gè)Solr核心都有一個(gè)core.properties文件,在使用API??時(shí)自動(dòng)創(chuàng)建。在創(chuàng)建SolrCloud集合時(shí),可以通過(guò)自定義參數(shù)傳入每個(gè)將創(chuàng)建的core.properties,只需使用“property”作為參數(shù)名稱前綴即可,比如URL參數(shù),示例如下:
http://localhost:8983/solr/admin/collections?action=CREATE&name=gettingstarted&numShards=1&property.my.custom.prop=edismax
這將創(chuàng)建一個(gè)core.properties文件,至少具有以下屬性(為簡(jiǎn)潔起見(jiàn),省略了其他文件):
#core.properties
name=gettingstarted
my.custom.prop=edismax
該my.custom.prop屬性可以被用作一個(gè)變量,例如在solrconfig.xml中:
<requestHandler name="/select">
<lst name="defaults">
<str name="defType">${my.custom.prop}</str>
</lst>
</requestHandler>
Solr 核心的幾個(gè)屬性可以用作變量替換中使用的“隱式”屬性,獨(dú)立于初始化值的位置或方式。例如:不管特定Solr核心的名稱是在core.properties實(shí)例目錄的名稱中顯式配置還是從實(shí)例目錄中推斷出來(lái)的,隱式屬性solr.core.name都可用作該核心配置文件中的變量。
<requestHandler name="/select">
<lst name="defaults">
<str name="collection_name">${solr.core.name}</str>
</lst>
</requestHandler>
所有隱式屬性都使用solr.core.名稱前綴,并反映等效core.properties屬性的運(yùn)行時(shí)值:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: