練習 3:索引您自己的資料

練習 3:索引您自己的資料

在這個練習中,使用您選擇的資料集。這可以是您本機硬碟上的檔案、您先前使用過的資料集,或您打算為生產應用程式索引至 Solr 的資料樣本。

此練習旨在讓您思考您需要為應用程式執行的操作

  • 您需要索引哪些類型的資料?

  • 您需要做什麼來準備 Solr 以處理您的資料(例如,建立特定欄位、設定複製欄位、決定分析規則等)

  • 您想要為使用者提供哪些類型的搜尋選項?

  • 您需要進行多少測試才能確保一切都按您預期的方式運作?

建立您自己的集合

在您開始之前,建立一個新的集合,名稱隨您喜好。在此範例中,集合將命名為「localDocs」;如果您想使用其他名稱,請將該名稱替換為您選擇的任何名稱。

$ bin/solr create -c localDocs -s 2 -rf 2

同樣地,如我們在上面的練習 2 中所見,這將使用 _default 設定集及其提供的所有無 Schema 功能。如我們先前所述,這可能會在我們索引資料時造成問題。您可能需要多次重複索引才能使 Schema 正確。

索引想法

Solr 有許多方法可以索引資料。選擇以下方法之一,並在您的系統中試試看

使用 bin/solr post 的本機檔案

如果您有本機檔案目錄,Post 工具 (bin/solr post) 可以索引檔案目錄。我們在第一個練習中看到了這個操作。

在我們的練習中,我們僅使用了 JSON、XML 和 CSV,但 Post 工具也可以處理 HTML、PDF、Microsoft Office 格式(例如 MS Word)、純文字等等。

在此範例中,假設本機有一個名為「Documents」的目錄。若要索引它,我們將發出類似這樣的命令(在 -c 參數之後修正集合名稱,視需要而定)

$ bin/solr post -c localDocs ~/Documents

當它處理您的文件時,您可能會收到錯誤。這些可能是由欄位猜測引起的,或可能不支援檔案類型。索引這類內容顯示了為您的資料規劃 Solr 的必要性,這需要了解它,或許還需要一些試驗和錯誤。

SolrJ

SolrJ 是一個基於 Java 的用戶端,用於與 Solr 互動。針對基於 JVM 的語言或其他 用戶端 API 使用 SolrJ,以程式設計方式建立要傳送到 Solr 的文件。

文件畫面

使用管理 UI 文件畫面(位於 https://127.0.0.1:8983/solr/#/localDocs/documents),貼上要索引的文件,或從「文件類型」下拉式選單中選取 文件建立器,以一次建立一個欄位的文件。按一下表單下方的 提交文件按鈕以索引您的文件。

更新資料

您可能會注意到,即使您在本教學課程中多次索引內容,也不會重複找到的結果。這是因為範例 Solr Schema(一個名為 managed-schema.xmlschema.xml 的檔案)指定了一個名為 iduniqueKey 欄位。每當您將 POST 命令傳送到 Solr 以新增與現有文件具有相同 uniqueKey 值的的文件時,它會自動為您替換它。

您可以在 Solr 管理 UI 的核心特定「概觀」區段中查看 numDocsmaxDoc 的值,以了解已發生的情況。

numDocs 代表索引中可搜尋的文件數量(並且會大於 XML、JSON 或 CSV 文件的數量,因為有些檔案包含多個文件)。maxDoc 的值可能會更大,因為 maxDoc 計數包括邏輯上已刪除但尚未從索引中實際移除的文件。您可以重複發佈範例檔案多次,numDocs 永遠不會增加,因為新文件會不斷地取代舊文件。

請繼續編輯任何現有的範例資料檔案,更改一些資料,然後重新執行 PostTool (bin/solr post)。您會在後續的搜尋中看到您的變更。

刪除資料

如果您需要多次迭代才能使您的 schema 正確,您可能需要刪除文件以清除集合並再次嘗試。但請注意,僅僅刪除文件並不會更改底層的欄位定義。基本上,這將允許您在根據您的需求變更欄位後重新索引資料。

您可以透過將刪除命令 POST 到更新 URL,並指定文件的唯一鍵欄位的值,或符合多個文件的查詢(請小心使用這個!)來刪除資料。如果我們正確構建請求,我們也可以使用 bin/solr post 來刪除文件。

執行以下命令來刪除特定文件

$ bin/solr post -c localDocs -d "<delete><id>SP2514N</id></delete>"

要刪除所有文件,您可以使用像這樣的「按查詢刪除」命令

$ bin/solr post -c localDocs -d "<delete><query>*:*</query></delete>"

您也可以修改上面的命令,僅刪除符合特定查詢的文件。

練習 3 總結

至此,您已經準備好開始處理您自己的資料了。

當您準備好停止 Solr 並刪除所有您處理過的範例並重新開始時,請跳到整體總結

或者,如果您願意,您可以完成剩餘的練習。