W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Solr的架構(gòu)API使遠(yuǎn)程客戶端可以通過(guò)REST接口訪問(wèn)架構(gòu)信息并進(jìn)行架構(gòu)修改。
其他特性,如Solr的Schemaless Mode,也可以在運(yùn)行時(shí)通過(guò)編程方式進(jìn)行架構(gòu)修改。
使用托管架構(gòu)需要能夠使用架構(gòu)API來(lái)修改您的架構(gòu)。然而,使用托管架構(gòu)本身并不意味著您也在無(wú)架構(gòu)模式(或“架構(gòu)猜測(cè)”模式)中使用Solr。
無(wú)架構(gòu)模式需要啟用托管架構(gòu)(如果尚未建立模式),但是完全模式猜測(cè)需要額外配置,如“無(wú)模式模式”部分中所述。
盡管架構(gòu)API的“讀取”特性對(duì)于所有架構(gòu)類型都是支持的,但是支持以編程方式進(jìn)行架構(gòu)修改依賴于正在使用的<schemaFactory/>。
當(dāng)<schemaFactory/>沒(méi)有在solrconfig.xml文件中顯式聲明時(shí),Solr隱式地使用ManagedIndexSchemaFactory,它是默認(rèn)的"mutable"并將模式信息保存在一個(gè)managed-schema文件中。
<!-- An example of Solr's implicit default behavior if no
no schemaFactory is explicitly defined.
-->
<schemaFactory class="ManagedIndexSchemaFactory">
<bool name="mutable">true</bool>
<str name="managedSchemaResourceName">managed-schema</str>
</schemaFactory>
如果您想明確配置 ManagedIndexSchemaFactory,下列選項(xiàng)可用:
使用上面所示的默認(rèn)配置,您可以使用Schema API根據(jù)需要盡可能多地修改架構(gòu),如果您希望將架構(gòu)“鎖定”到位并防止將來(lái)發(fā)生更改,則稍后將mutable值更改為false。
使用托管架構(gòu)的替代方法是顯式配置一個(gè)ClassicIndexSchemaFactory。ClassicIndexSchemaFactory 需要使用schema.xml配置文件,并且不允許在運(yùn)行時(shí)對(duì)架構(gòu)進(jìn)行任何編程式更改。該schema.xml文件必須手動(dòng)編輯,僅在加載集合時(shí)才加載。
<schemaFactory class="ClassicIndexSchemaFactory"/>
如果您有一個(gè)現(xiàn)有的Solr集合使用了ClassicIndexSchemaFactory,并且您希望轉(zhuǎn)換為使用托管模式,則可以簡(jiǎn)單地修改solrconfig.xml以指定使用ManagedIndexSchemaFactory。
一旦Solr重新啟動(dòng),它檢測(cè)到schema.xml文件存在,但managedSchemaResourceName文件(即:“managed-schema”)不存在,現(xiàn)有的schema.xml文件將被重命名為schema.xml.bak,內(nèi)容被重新寫入托管的架構(gòu)文件。如果您查看生成的文件,您會(huì)在頁(yè)面頂部看到這個(gè):
<!-- Solr managed schema - automatically generated - DO NOT EDIT -->
您現(xiàn)在可以隨意使用Schema API,只需要進(jìn)行更改,然后刪除schema.xml.bak。
如果您啟動(dòng)了Solr并啟用了托管架構(gòu),并且想要切換到手動(dòng)編輯schema.xml文件,則應(yīng)執(zhí)行以下步驟:
如果您正在使用SolrCloud,則可能需要通過(guò)ZooKeeper修改文件。該bin/solr腳本提供了一種簡(jiǎn)單的方法來(lái)從ZooKeeper下載文件并在編輯之后將其上傳。有關(guān)更多信息,請(qǐng)參閱ZooKeeper操作部分。
要完全控制schema.xml文件,您可能還需要禁用架構(gòu)猜測(cè),這可以在編制索引期間將未知字段添加到架構(gòu)中。在“無(wú)架構(gòu)模式”一節(jié)中討論了啟用此功能的屬性。
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)系方式:
更多建議: