Solr 索引

本節說明索引的流程:將內容新增至 Solr 索引,以及在必要時修改或刪除該內容。

藉由將內容新增至索引,我們使其可透過 Solr 搜尋。

Solr 索引可以接受來自許多不同來源的資料,包括 XML 檔案、逗號分隔值 (CSV) 檔案、從資料庫中的表格擷取的資料,以及常見檔案格式 (例如 Microsoft Word 或 PDF) 的檔案。

以下是將資料載入 Solr 索引的三種最常見方式

  • 使用 Solr Cell 和 Apache Tika 進行索引,建構於 Apache Tika 之上,用於擷取二進位檔案或結構化檔案,例如 Office、Word、PDF 和其他專有格式。

  • 透過從任何可以產生此類請求的環境,將 HTTP 請求傳送至 Solr 伺服器,來上傳 XML 檔案。

  • 編寫自訂 Java 應用程式,透過 Solr 的 Java 用戶端 API 擷取資料 (在 用戶端 API 中有更詳細的說明)。如果您正在使用提供 Java API 的應用程式 (例如內容管理系統 (CMS)),則使用 Java API 可能是最佳選擇。

無論使用哪種方法擷取資料,饋送到 Solr 索引的資料都有一個通用的基本資料結構:一個包含多個欄位文件,每個欄位都有一個名稱,並包含可能為空的內容。其中一個欄位通常被指定為唯一 ID 欄位 (類似於資料庫中的主鍵),儘管 Solr 並不嚴格要求使用唯一 ID 欄位。

如果欄位名稱在與索引相關聯的 Schema 中定義,則當內容被分詞時,與該欄位相關聯的分析步驟將會套用到其內容。未在 Schema 中明確定義的欄位將會被忽略,或者如果存在與欄位名稱匹配的欄位,則會對應到動態欄位定義

Solr 範例目錄

當使用 "-e" 選項啟動 Solr 時,example/ 目錄將會被用作所建立範例 Solr 執行個體的基礎目錄。此目錄還包括一個 example/exampledocs/ 子目錄,其中包含各種格式的範例文件,您可以使用這些文件來實驗各種範例的索引。

用於傳輸檔案的 curl 工具

本節中的許多說明和範例都使用了 curl 工具,透過 URL 傳輸內容。curl 可透過 HTTP、FTP 和許多其他協定發布和檢索資料。大多數 Linux 發行版都包含 curl 的副本。您可以在 http://curl.haxx.se/download.html 找到適用於 Linux、Windows 和許多其他作業系統的 curl 下載連結。curl 的文件可在此處找到:http://curl.haxx.se/docs/manpage.html

使用 curl 或其他命令列工具發布資料對於範例或測試來說是沒有問題的,但對於在生產環境中實現最佳更新效能而言,這不是建議的方法。使用 Solr Cell 或本節中描述的其他方法,您將獲得更好的效能。

除了 curl 之外,您也可以使用 GNU wget (https://gnu.dev.org.tw/software/wget/) 之類的工具,或使用 Perl 管理 GET 和 POST,但命令列選項會有所不同。