Solr的架構(gòu)API

2018-11-13 13:49 更新

Solr 架構(gòu) API 允許您使用 HTTP API 來(lái)管理架構(gòu)中的許多元素。

Schema API 使用 ManagedIndexSchemaFactory 類,這是現(xiàn)代 Solr 版本中的默認(rèn)架構(gòu)工廠。有關(guān)為索引選擇架構(gòu)工廠的更多信息,請(qǐng)參閱 SolrConfig 中的架構(gòu)工廠定義一節(jié)。

此 API 為每個(gè)集合 (或使用獨(dú)立 solr 時(shí)的核心) 提供對(duì) Solr 架構(gòu)的讀取和寫(xiě)入訪問(wèn)權(quán)限。支持對(duì)所有架構(gòu)元素的讀訪問(wèn)權(quán)限。字段、動(dòng)態(tài)字段、字段類型和 copyField規(guī)則可以添加、刪除或替換。將來(lái)的 Solr 版本將擴(kuò)展寫(xiě)訪問(wèn)權(quán)限,以允許修改更多的架構(gòu)元素。

為什么不鼓勵(lì)手動(dòng)編輯托管架構(gòu)?在示例配置中名為 "托管架構(gòu)(managed-schema)" 的文件可能包括一個(gè)建議不要手動(dòng)編輯文件的注釋。在架構(gòu) API 存在之前, 此類編輯是對(duì)架構(gòu)進(jìn)行更改的唯一方法,用戶可能會(huì)強(qiáng)烈的希望繼續(xù)以這種方式進(jìn)行更改。

之所以不鼓勵(lì)這樣做,是因?yàn)槿绻竺婷枋龅募軜?gòu) API 被用來(lái)進(jìn)行更改,則可能會(huì)丟失對(duì)架構(gòu)的手工編輯,除非在使用架構(gòu) API 之前重新加載了核心或啟動(dòng)了Solr。如果在手動(dòng)編輯后總是重新加載或重新啟動(dòng), 那么執(zhí)行這些編輯就沒(méi)有問(wèn)題了。

API 允許對(duì)所有調(diào)用的兩種輸出模式:JSON或XML。在請(qǐng)求完整的架構(gòu)時(shí),還有另一個(gè)輸出模式,它是以 xml 格式在托管架構(gòu)文件本身之后建模的。

在使用 API 修改架構(gòu)時(shí),將自動(dòng)進(jìn)行核心重新加載,以便隨后對(duì)其索引的文檔立即進(jìn)行更改。以前編入索引的文檔不會(huì)自動(dòng)更新 - 如果現(xiàn)有索引數(shù)據(jù)使用您更改的架構(gòu)元素,則必須索引它們。

修改架構(gòu)后重新索引!如果修改架構(gòu),您可能需要重新索引所有文檔。如果不這樣做,您可能會(huì)失去對(duì)文檔的訪問(wèn)權(quán)限,或者無(wú)法正確解釋它們,例如在替換字段類型后。
修改您的架構(gòu)將永遠(yuǎn)不會(huì)修改任何已經(jīng)索引的文檔。您必須重新索引文檔以便將架構(gòu)更改應(yīng)用于這些文檔。更改后所做的查詢和更新可能會(huì)遇到在更改之前不存在的錯(cuò)誤。完全刪除索引并重建它通常是解決此類錯(cuò)誤的唯一選項(xiàng)。

API 的基本地址為 http://<host>: <port>/solr/<collection_name>。例如,如果您運(yùn)行 Solr 的 "cloud" 示例 (通過(guò)下面顯示的 bin/solr 命令), 創(chuàng)建 "gettingstarted" 集合, 則該集合的基本 URL(如本節(jié)中的所有示例URL)將是:http://localhost:8983/solr/gettingstarted。

bin/solr -e cloud -noprompt

架構(gòu) API 入口點(diǎn)

  • /schema:檢索架構(gòu),或修改架構(gòu)以添加、刪除或替換字段、動(dòng)態(tài)字段、復(fù)制字段或字段類型。
  • /schema/fields:檢索有關(guān)所有定義的字段或特定命名字段的信息。
  • /schema/dynamicfields:檢索有關(guān)所有動(dòng)態(tài)字段規(guī)則或特定命名動(dòng)態(tài)規(guī)則的信息。
  • /schema/fieldtypes:檢索有關(guān)所有字段類型或特定字段類型的信息。
  • /schema/copyfields:檢索有關(guān)復(fù)制字段的信息。
  • /schema/name:檢索模式名稱。
  • /schema/version:檢索模式版本。
  • /schema/uniquekey:檢索已定義的 uniqueKey。
  • /schema/similarity:檢索全局相似性定義。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)