建立可搜尋索引 java:新增文件區分大小寫搜尋

在現代 Java 應用程式中,creating a searchable index java 是從大型文件集合中快速、精確檢索資訊的基礎。本教學將示範如何將文件加入索引、啟用區分大小寫的搜尋,並使用 GroupDocs.Search 進行微調。無論您是建置法律資料庫、電子商務目錄或內容管理系統,這些步驟都能協助您提供精準的結果,提升使用者滿意度。

快速解答

  • 開始搜尋的主要步驟是什麼? 使用 index.add(...) 新增文件至索引。
  • 如何啟用區分大小寫的搜尋? 設定 options.setUseCaseSensitiveSearch(true)。
  • 可以跨多個目錄搜尋嗎? 可以 – 為每個想要包含的資料夾呼叫 index.add()。
  • 哪個方法允許使用物件搜尋? 使用 SearchQuery.createWordQuery(...)。
  • 測試是否需要授權? 可取得臨時授權供試用使用。

「將文件加入索引」是什麼意思?

將文件加入索引表示將您的來源檔案(PDF、Word 文件、純文字等)餵入 GroupDocs.Search,讓它建立可搜尋的資料結構。索引會儲存分詞後的詞彙、位置與中繼資料,使引擎能快速執行查詢,包括區分大小寫的查詢,並有效排序結果。

為何在 Java 中啟用區分大小寫的搜尋?

啟用區分大小寫的搜尋可確保引擎區分僅在字母大小寫上不同的詞彙,這對於大小寫具有意義的領域至關重要。它允許精確的詞彙匹配,支援法規遵循需求,並透過返回完全符合使用者查詢大小寫的結果提升相關性。

  • 精確詞彙匹配 – 例如,「Apple」(公司)與「apple」(水果)。
  • 符合法規要求 – 許多產業需要精確的片語匹配。
  • 提升相關性 – 技術與法律使用者常期望區分大小寫的結果。

前置條件

  • JDK 17 或更新版本(建議)
  • Maven 用於相依管理
  • IDE,例如 IntelliJ IDEA 或 Eclipse
  • 具備基本的 Java 程式設計知識

設定 GroupDocs.Search for Java

以下的 Maven 片段會將 GroupDocs.Search 套件庫與必要的相依加入您的專案。

<repositories>
    <repository>
        <id>repository.groupdocs.com</id>
        <name>GroupDocs Repository</name>
        <url>https://releases.groupdocs.com/search/java/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>25.4</version>
    </dependency>
</dependencies>

或者,您也可以直接從 GroupDocs.Search for Java releases 下載最新版本。

授權

若要使用試用版,請前往 GroupDocs 取得臨時授權。這將允許您在無任何限制的情況下測試所有功能。

如何建立可搜尋索引 java – 文字查詢搜尋

步驟 1:建立索引並新增文件

Index 類別代表磁碟上可搜尋的儲存區,文件會在此被索引。

String indexFolder = YOUR_OUTPUT_DIRECTORY + "/CaseSensitiveSearch/QueryInTextForm";
Index index = new Index(indexFolder);
index.add(YOUR_DOCUMENT_DIRECTORY); // Add documents to the index

Pro tip: 您可以多次呼叫 index.add(),在單一索引中跨多個目錄搜尋。

步驟 2:啟用區分大小寫的搜尋

SearchOptions 設定查詢的處理方式,包括大小寫敏感度與其他搜尋行為。

SearchOptions options = new SearchOptions();
options.setUseCaseSensitiveSearch(true);

步驟 3:執行區分大小寫的文字查詢

SearchQuery 建立引擎對索引進行評估的查詢物件。

String query = "Advantages";
SearchResult result = index.search(query, options);

// Output results
for (FoundDocument doc : result.getDocuments()) {
    System.out.println("Document: " + doc.getDocumentInfo().getFilePath());
}

此迴圈會列印出每個包含完全相符大小寫詞彙的文件完整路徑。

如何建立可搜尋索引 java – 物件查詢搜尋

步驟 1:初始化第二個索引(可選)

可以建立第二個 Index 實例,以將物件型別的搜尋與純文字搜尋分離。

String indexFolder = YOUR_OUTPUT_DIRECTORY + "/CaseSensitiveSearch/QueryInObjectForm";
Index index = new Index(indexFolder);
index.add(YOUR_DOCUMENT_DIRECTORY); // Add documents to the index

步驟 2:重複使用區分大小寫的選項

SearchOptions 可在不同查詢類型之間重複使用,以維持一致的大小寫處理。

SearchOptions options = new SearchOptions();
options.setUseCaseSensitiveSearch(true);

步驟 3:建立並執行物件查詢

WordQuery 代表字詞層級的搜尋,可與其他查詢類型結合以實現複雜搜尋。

SearchQuery query = SearchQuery.createWordQuery("Advantages");
SearchResult result = index.search(query, options);

// Output results
for (FoundDocument doc : result.getDocuments()) {
    System.out.println("Document: " + doc.getDocumentInfo().getFilePath());
}

使用 createWordQuery 可在之後與片語、萬用字元或布林查詢結合,實現更複雜的情境。

實務應用

  • 法律文件管理: 取得在大小寫有意義的特定條文。
  • 電子商務平台: 區分如「PRO‑X」與「pro‑x」的產品 SKU。
  • 內容管理系統(CMS): 確保作者能精確找到標題或標籤。

效能考量

  • 保持索引即時更新 – 當新增檔案或現有檔案變更時重新索引。
  • 監控記憶體使用 – 大型語料庫受益於增量索引與適當的 JVM 堆積大小設定。
  • 善用 Java 的垃圾回收機制 – 當 Index 物件不再需要時釋放它們。

常見問題與解決方案

問題解決方案
useCaseSensitiveSearch 似乎被忽略請確認您使用的是最新的 GroupDocs.Search 版本,且在變更此選項後已重新建立索引。
已知詞彙未返回結果確保詞彙的大小寫完全匹配,且文件已成功加入索引。
搜尋大量資料夾速度變慢使用 index.add() 個別加入每個資料夾,並考慮將索引拆分為多個分片以處理極大型資料集。

常見問答

Q: 如何使用 GroupDocs.Search 處理大型資料集?
A: 利用索引分割、調整 JVM 記憶體設定,並定期壓縮索引,以維持最佳效能。

Q: 可以同時跨多個目錄搜尋嗎?
A: 可以 – 為每個想要包含的目錄呼叫 index.add(),然後對合併後的索引執行單一查詢。

Q: 設定區分大小寫搜尋時常見的陷阱是什麼?
A: 在啟用 useCaseSensitiveSearch 後忘記重新建立索引,或在查詢字串中使用錯誤的大小寫。

Q: 如何排除搜尋錯誤?
A: 檢查 GroupDocs.Search 產生的日誌檔案以取得堆疊追蹤,並確認所有 Maven 相依已正確解析。

Q: GroupDocs.Search 適合即時應用嗎?
A: 只要採取適當的索引策略(增量更新與記憶體快取),即可提供接近即時的搜尋結果。

資源


最後更新: 2026-08-10
測試版本: GroupDocs.Search 25.4
作者: GroupDocs

相關教學