Jak provádět regex vyhledávání v Javě s GroupDocs.Search
Searching through thousands of text documents can feel like looking for a needle in a haystack. How to regex search in Java becomes effortless when you pair the language’s powerful regular‑expression engine with GroupDocs.Search, a library that builds an index for lightning‑fast pattern matching. In the next few minutes you’ll see how to install the library, create an index, add files, and run both simple text‑based and object‑oriented regex queries. By the end you’ll be ready to embed robust pattern‑matching search into any Java application.
Rychlé odpovědi
- Jaká je hlavní knihovna? GroupDocs.Search for Java
- Jak začít? Přidejte Maven závislost a vytvořte objekt
Index - Mohu filtrovat obsah pomocí regexu? Ano – použijte regex dotazy pro scénáře filtrování obsahu
- Potřebuji licenci? Pro produkční použití je vyžadována bezplatná zkušební verze nebo dočasná licence
- Jaká verze JDK je podporována? Java 8 nebo vyšší
Co je regex vyhledávání?
Regex vyhledávání vám umožňuje najít vzory, jako jsou data, e‑mailové adresy nebo opakující se znaky, napříč mnoha soubory v jedné operaci. Přemění dotaz v prostém textu na výkonný, pravidly řízený skener, který může za běhu extrahovat nebo blokovat obsah.
Proč použít GroupDocs.Search pro regex vyhledávání?
GroupDocs.Search indexuje dokumenty jednou a poté tento index používá pro každý dotaz, což poskytuje až 10× rychlejší vyhledávání ve srovnání s přímým skenováním souborů. Knihovna podporuje více než 30 formátů souborů (PDF, DOCX, XLSX, PPTX, TXT, HTML a další) a dokáže zpracovat soubory o stovkách stránek, aniž by načítala celý soubor do paměti.
Předpoklady
- Java Development Kit (JDK) 8 nebo vyšší
- Maven pro správu závislostí
- Základní znalost regulárních výrazů v Javě
Požadované knihovny a závislosti
Add GroupDocs.Search to your Maven project:
<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>
Alternatively, download the latest JAR from GroupDocs.Search for Java releases.
Získání licence
Obtain a free trial or temporary license from GroupDocs.License and load it at application start‑up.
Nastavení GroupDocs.Search pro Javu
Informace o instalaci
- Integrace s Maven: Přidejte repozitář a závislost uvedenou výše do svého
pom.xml. - Přímé stažení: Umístěte soubory JAR do classpath vašeho projektu.
- Aplikace licence: Načtěte soubor licence při spuštění aplikace.
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Initialize the index by specifying a directory.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
System.out.println("Index created successfully at: " + indexFolder);
}
}
Hlavní komponenty
Index třída je hlavní komponenta, která ukládá prohledávatelné tokeny extrahované z vašich dokumentů. Umožňuje rychlé vyhledání jakéhokoli termínu nebo vzoru bez nutnosti opětovného čtení původních souborů.
Jak vytvořit index
Vytvoření indexu je jednoduché: vytvořte instanci třídy Index s cestou ke složce, kde budou uloženy soubory indexu. Konstruktor při prvním použití vytvoří potřebné databázové soubory a připraví engine pro přidávání a vyhledávání dokumentů. Po vytvoření použijte stejný index pro všechny dotazy.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
Jak přidat dokumenty
Aby byl soubor prohledávatelný, zavolejte index.add s instancí Document (nebo DocumentInfo), která ukazuje na cestu souboru. Knihovna parsuje obsah, extrahuje tokeny a uloží je do indexu. Tuto operaci lze provést pro jednotlivé soubory nebo dávky a aktualizace se sloučí inkrementálně.
index.add("YOUR_DOCUMENT_DIRECTORY");
system.out.println("Documents added to the index.");
Jak provést vyhledávání regulárním výrazem v textové podobě
RegexQuery definuje vyhledávací dotaz založený na regulárním výrazu. Načtěte RegexQuery s textovým vzorem a předávejte jej metodě search třídy Index. Engine vyhodnotí vzor vůči indexovaným tokenům a vrátí odpovídající reference na dokumenty, což umožňuje rychlé a jednoduché jednorázové vyhledávání.
String query1 = "^((.)\\2{1,})";
Jak provést vyhledávání regulárním výrazem v objektové podobě
RegexQuery lze také vytvořit jako objekt a znovu použít v několika vyhledáváních. Definujte dotaz jednou, nastavte možnosti jako neberení v úvahu velikosti písmen nebo fuzzy shodu a opakovaně volajte index.search. Tento přístup zlepšuje výkon, když je stejný vzor aplikován na mnoho různých sad dokumentů.
SearchResult result1 = index.search(query1);
system.out.println("Number of occurrences found: " + result1.getDocumentCount());
Případy použití regexu pro filtrování obsahu
Můžete použít regex k automatickému blokování nebo označování obsahu, který odpovídá určitým vzorům, například:
- Detekce opakujících se znaků pro filtrování spamu
- Vyhledávání sekvencí podobných kreditním kartám pro kontrolu ochrany dat
- Extrahování dat nebo ID pro následné zpracování
Praktické aplikace
- Systémy pro správu dokumentů: Vyhledávejte smlouvy, faktury nebo zásady podle vzoru (např. čísla faktur).
- Moderování obsahu: Použijte regex pravidla k moderaci uživatelského textu ve fórech nebo chatovacích aplikacích.
- Extrahování dat: Získejte strukturovaná data, jako jsou čísla objednávek, z nestrukturovaných PDF nebo Word souborů.
Úvahy o výkonu
- Aktualizace indexu: Zavolejte
index.addkdykoli se změní zdrojové soubory, aby byly výsledky aktuální. - Správa paměti: Pro korpusy přesahující 1 milion dokumentů povolte inkrementální indexování, aby byl využití haldy pod kontrolou.
- Návrh regexu: Udržujte vzory stručné; vzor jako
\d{4}-\d{2}-\d{2}běží 3× rychleji než výraz s mnoha zástupnými znaky jako.*.
Závěr
Nyní víte, jak provádět regex vyhledávání v Javě pomocí GroupDocs.Search, od instalace knihovny a vytvoření indexu až po provádění jak textových, tak objektově orientovaných dotazů. Tyto techniky vám umožní přidat rychlé, vzorově orientované vyhledávání do jakékoli Java aplikace, ať už vytváříte dokumentový portál, kontrolní skener nebo datový těžební řetězec.
Často kladené otázky
Q: Jaký je rozdíl mezi textovými a objektovými regex dotazy v GroupDocs.Search?
A: Textové dotazy jsou rychlé jednorázové, zatímco objektové dotazy poskytují znovupoužitelné, typově bezpečné definice, které lze uložit a znovu použít v několika vyhledáváních.
Q: Může GroupDocs.Search indexovat netextové dokumenty, jako jsou PDF nebo Excel soubory?
A: Ano, knihovna extrahuje prohledávatelný text z PDF, DOCX, XLSX, PPTX a více než 30 dalších formátů.
Q: Jak aktualizovat existující vyhledávací index po přidání nových souborů?
A: Zavolejte index.add s novými nebo upravenými dokumenty; knihovna sloučí změny bez nutnosti přestavovat celý index.
Q: Jaké jsou běžné úskalí při používání regexu s GroupDocs.Search?
A: Příliš široké vzory (např. .*) mohou způsobit pokles výkonu a špatně vytvořené výrazy mohou vracet žádné výsledky. Vždy nejprve testujte vzory na vzorku dat.
Q: Kde najdu pokročilejší tutoriály k GroupDocs.Search?
A: Navštivte GroupDocs Documentation pro podrobné návody, referenční API a ukázkové projekty.
Poslední aktualizace: 2026-07-31
Testováno s: GroupDocs.Search 25.4
Autor: GroupDocs
SearchQuery query2 = SearchQuery.createRegexQuery("^(.)\\1{1,}");
SearchResult result2 = index.search(query2);
system.out.println("Occurrences found using object form: " + result2.getDocumentCount());