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