精通 GroupDocs.Search 在 Java 中 – regex search java 與索引管理

簡介

您是否在為大量文件的索引與搜尋而苦惱?無論是法律檔案、學術文章,或是企業報告,regex search java 是一項強大的技術,能讓您快速定位文字中的模式。使用 GroupDocs.Search for Java,您可以建立索引、add documents to index,並僅用幾行程式碼執行模糊、通配符或正則表達式查詢。以下將帶您從環境設定到打造複雜搜尋查詢的完整步驟。

快速回答

  • GroupDocs.Search 的主要目的為何? 建立可搜尋的索引,以支援各種文件格式。
  • 建立索引後,我可以再加入文件嗎? 可以—使用 index.add() 方法加入新檔案。
  • GroupDocs.Search 在 Java 中支援模糊搜尋嗎? 當然可以;透過 SearchOptions 啟用。
  • 如何在 Java 中執行通配符查詢? 使用 SearchQuery.createWildcardQuery() 建立。
  • 正式環境是否需要授權? 商業部署需要有效的 GroupDocs.Search 授權。

在 GroupDocs.Search 中「如何建立索引」是什麼意思?

建立索引即是掃描一個或多個來源文件,提取可搜尋的文字,並將這些資訊以結構化格式儲存,以便高效查詢。產生的索引可實現閃電般的快速查找,即使面對數千個檔案亦能快速定位。

為何選擇 GroupDocs.Search for Java?

  • 廣泛的格式支援: PDF、Word、Excel、PowerPoint 等多種格式。
  • 內建語言功能: 開箱即用的模糊搜尋、通配符以及 regex search java 功能。
  • 可擴展的效能: 能處理大型文件集合,且可設定記憶體使用量。

前置條件

  • GroupDocs.Search for Java 版本 25.4 或更新版本。
  • 支援 Maven 專案的 IDE,例如 IntelliJ IDEA 或 Eclipse。
  • 已在機器上安裝 JDK。
  • 具備 Java 與搜尋概念的基本認識。

設定 GroupDocs.Search for Java

您可以透過 Maven 加入此函式庫,或手動下載。

Maven 設定:

<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 下載最新版本。

取得授權

  • 免費試用: 無需付費即可體驗功能。
  • 臨時授權: 延長試用期間。
  • 正式授權: 正式環境必須使用。

取得函式庫後,於 Java 程式碼中初始化:

import com.groupdocs.search.*;

public class InitializeSearch {
    public static void main(String[] args) {
        // Create an index instance
        Index index = new Index("YOUR_DOCUMENT_DIRECTORY\\output");
        
        System.out.println("GroupDocs.Search initialized successfully.");
    }
}

實作指南

使用 GroupDocs.Search 建立索引

本節將逐步說明如何建立索引以及 add documents to index 的完整流程。

定義路徑

String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\CreateAndIndexDocuments";
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";

建立索引

Index index = new Index(indexFolder);
System.out.println("Index created at: " + indexFolder);

新增文件至索引

index.add(documentsFolder);
System.out.println("Documents added to the index.");

專業提示: 請確保目錄已存在且僅包含欲搜尋的檔案;不相關的檔案會使索引變大。

使用模糊搜尋選項的簡易字詞查詢 (fuzzy search java)

模糊搜尋在使用者拼寫錯誤或 OCR 產生錯誤時非常有用。

SearchQuery subquery = SearchQuery.createWordQuery("future");
subquery.setSearchOptions(new SearchOptions());
subquery.getSearchOptions().getFuzzySearch().setEnabled(true);
subquery.getSearchOptions().getFuzzySearch()
        .setFuzzyAlgorithm(new TableDiscreteFunction(3));
System.out.println("Fuzzy search enabled with a tolerance of 3.");

Java 通配符查詢

通配符查詢可匹配特定前綴開頭的任意字詞。

SearchQuery subquery = SearchQuery.createWildcardQuery(1);
System.out.println("Wildcard query created.");

Java 正則表達式搜尋

正則表達式提供對模式匹配的精細控制,適合尋找重複字元或複雜的標記結構。

SearchQuery subquery = SearchQuery.createRegexQuery("(.)\\1");
System.out.println("Regex query created to find repeated characters.");

將子查詢組合成片語搜尋查詢

您可以混合字詞、通配符與正則表達式子查詢,構建複雜的片語搜尋。

SearchQuery subquery1 = SearchQuery.createWordQuery("future");
SearchQuery subquery2 = SearchQuery.createWildcardQuery(1);
SearchQuery subquery3 = SearchQuery.createRegexQuery("(.)\\1");
SearchQuery combinedQuery = SearchQuery.createPhraseSearchQuery(subquery1, subquery2, subquery3);
System.out.println("Combined phrase search query created.");

設定與執行自訂選項的搜尋

調整搜尋選項可控制返回的匹配次數,對大型語料庫尤為有用。

SearchOptions options = new SearchOptions();
options.setMaxOccurrenceCountPerTerm(1000000);
options.setMaxTotalOccurrenceCount(10000000);
System.out.println("Custom search options configured.");
Index index = new Index("YOUR_DOCUMENT_DIRECTORY\\output\\ConfigureAndPerformSearch");
SearchQuery query = SearchQuery.createWordQuery("future");

SearchResult result = index.search(query, options);
System.out.println("Search performed with custom options.");

regex search java – 常見使用情境

  • 法律研究: 找出符合特定模式的條款,例如日期格式為 DD/MM/YYYY 的條款。
  • 資料驗證: 偵測日誌中格式錯誤的識別碼或重複字元。
  • 內容審查: 使用正則表達式找出粗俗語或禁止的模式。
  • 金融分析: 抽取符合已知正則模板的交易代碼。

效能考量

  • 優化索引: 定期重新索引並移除過時檔案,以保持索引精簡。
  • 資源使用: 監控 JVM 堆積大小;大型索引可能需要更多記憶體或堆外儲存。
  • 垃圾回收: 為長時間運行的搜尋服務調整 GC 設定,以避免暫停。

常見問題

Q: 是否可以在不重新建立的情況下更新現有索引?
A: 可以—使用 index.add() 追加新檔案,或使用 index.update() 重新整理已變更的文件。

Q: 模糊搜尋如何處理不同語言?
A: 內建的模糊演算法基於 Unicode 字元,因而開箱即支援多數語言。

Q: 可索引的文件數量有上限嗎?
A: 實際上受限於磁碟空間與 JVM 記憶體;此函式庫設計可支援數百萬文件。

Q: 更改搜尋選項後需要重新啟動應用程式嗎?
A: 不需要—搜尋選項於每次查詢時套用,可即時調整。

Q: 哪裡可以找到更進階的查詢範例?
A: 官方的 GroupDocs.Search 文件與 API 參考提供大量複雜情境的範例。


最後更新: 2026-03-06
測試版本: GroupDocs.Search for Java 25.4
作者: GroupDocs