Jak wyszukiwać wyrażeniami regularnymi w Javie z GroupDocs.Search
Wyszukiwanie wśród tysięcy dokumentów tekstowych może przypominać szukanie igły w stogu siana. How to regex search w Javie staje się bezwysiłkowe, gdy połączysz potężny silnik wyrażeń regularnych języka z GroupDocs.Search, biblioteką budującą indeks dla błyskawicznego dopasowywania wzorców. W ciągu kilku minut zobaczysz, jak zainstalować bibliotekę, utworzyć indeks, dodać pliki i uruchomić zarówno proste zapytania tekstowe, jak i obiektowo‑zorientowane zapytania regex. Po zakończeniu będziesz gotowy, aby wbudować solidne wyszukiwanie oparte na dopasowywaniu wzorców w dowolną aplikację Java.
Szybkie odpowiedzi
- Jaka jest podstawowa biblioteka? GroupDocs.Search for Java
- Jak rozpocząć? Add the Maven dependency and instantiate an
Indexobject - Czy mogę filtrować zawartość przy użyciu regex? Yes – use regex queries for content‑filtering scenarios
- Czy potrzebna jest licencja? A free trial or temporary license is required for production use
- Która wersja JDK jest wspierana? Java 8 or higher
Czym jest wyszukiwanie regex?
Wyszukiwanie regex pozwala zlokalizować wzorce, takie jak daty, adresy e‑mail czy powtarzające się znaki, w wielu plikach w jednej operacji. Przekształca ono zapytanie w zwykłym tekście w potężny skaner oparty na regułach, który może wyodrębniać lub blokować zawartość w locie.
Dlaczego używać GroupDocs.Search do wyszukiwania regex?
GroupDocs.Search indeksuje dokumenty raz, a następnie ponownie wykorzystuje ten indeks dla każdego zapytania, zapewniając do 10× szybsze wyszukiwania w porównaniu ze skanowaniem surowych plików. Biblioteka obsługuje ponad 30 formatów plików (PDF, DOCX, XLSX, PPTX, TXT, HTML i inne) i potrafi obsłużyć pliki wielostronicowe bez ładowania całego pliku do pamięci.
Wymagania wstępne
- Java Development Kit (JDK) 8 lub wyższy
- Maven do zarządzania zależnościami
- Podstawowa znajomość wyrażeń regularnych w Javie
Wymagane biblioteki i zależności
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>
Alternatywnie, pobierz najnowszy plik JAR z GroupDocs.Search for Java releases.
Uzyskanie licencji
Uzyskaj bezpłatną wersję próbną lub tymczasową licencję z GroupDocs.License i załaduj ją przy uruchamianiu aplikacji.
Konfiguracja GroupDocs.Search dla Java
Informacje o instalacji
- Maven Integration: Dodaj repozytorium i zależność pokazane powyżej do swojego
pom.xml. - Direct Download: Umieść pliki JAR na classpathie swojego projektu.
- License Application: Załaduj plik licencji przy uruchamianiu aplikacji.
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);
}
}
Główne komponenty
Klasa Index jest głównym komponentem, który przechowuje przeszukiwalne tokeny wyodrębnione z Twoich dokumentów. Umożliwia szybkie wyszukiwanie dowolnego terminu lub wzorca bez ponownego odczytywania oryginalnych plików.
Jak utworzyć indeks
Tworzenie indeksu jest proste: zainstancjuj klasę Index z ścieżką folderu, w którym będą przechowywane pliki indeksu. Konstruktor tworzy niezbędne pliki bazy danych przy pierwszym użyciu i przygotowuje silnik do dodawania i przeszukiwania dokumentów. Po utworzeniu, używaj tego samego indeksu dla wszystkich zapytań.
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);
Jak dodać dokumenty
Aby plik był przeszukiwalny, wywołaj index.add z instancją Document (lub DocumentInfo) wskazującą na ścieżkę pliku. Biblioteka analizuje zawartość, wyodrębnia tokeny i zapisuje je w indeksie. Operację tę można wykonać dla pojedynczych plików lub partii, a aktualizacje są łączone stopniowo.
index.add("YOUR_DOCUMENT_DIRECTORY");
system.out.println("Documents added to the index.");
Jak wykonać wyszukiwanie wyrażeniem regularnym w formie tekstowej
RegexQuery definiuje zapytanie wyszukiwania oparte na wyrażeniu regularnym. Załaduj RegexQuery z wzorcem w zwykłym tekście i przekaż go do metody search klasy Index. Silnik ocenia wzorzec względem tokenów w indeksie i zwraca odwołania do pasujących dokumentów, co sprawia, że jednorazowe wyszukiwania są szybkie i proste.
String query1 = "^((.)\\2{1,})";
Jak wykonać wyszukiwanie wyrażeniem regularnym w formie obiektowej
RegexQuery może być również zbudowany jako obiekt i ponownie używany w wielu wyszukiwaniach. Zdefiniuj zapytanie raz, skonfiguruj opcje takie jak ignorowanie wielkości liter lub dopasowanie przybliżone, i wielokrotnie wywołuj index.search. To podejście poprawia wydajność, gdy ten sam wzorzec jest stosowany do wielu różnych zestawów dokumentów.
SearchResult result1 = index.search(query1);
system.out.println("Number of occurrences found: " + result1.getDocumentCount());
Przypadki użycia regex do filtrowania treści
Możesz używać regex do automatycznego blokowania lub oznaczania treści, które pasują do określonych wzorców, takich jak:
- Wykrywanie powtarzających się znaków w celu filtrowania spamu
- Znajdowanie sekwencji podobnych do numerów kart kredytowych w kontroli prywatności danych
- Wyodrębnianie dat lub identyfikatorów do dalszego przetwarzania
Praktyczne zastosowania
- Document Management Systems: Lokalizuj umowy, faktury lub polityki za pomocą wzorca (np. numery faktur).
- Content Moderation: Stosuj reguły regex do moderacji tekstu generowanego przez użytkowników na forach lub w aplikacjach czatu.
- Data Extraction: Pobieraj dane strukturalne, takie jak numery zamówień, z nieustrukturyzowanych plików PDF lub Word.
Rozważania dotyczące wydajności
- Index Updates: Wywołuj
index.addza każdym razem, gdy zmieniają się pliki źródłowe, aby utrzymać aktualność wyników. - Memory Management: Dla korpusów przekraczających 1 milion dokumentów włącz indeksowanie przyrostowe, aby utrzymać zużycie pamięci pod kontrolą.
- Regex Design: Utrzymuj wzorce zwięzłe; wzorzec taki jak
\d{4}-\d{2}-\d{2}działa 3× szybciej niż wyrażenie obciążone wieloma znakami wieloznacznymi, np..*.
Zakończenie
Teraz wiesz, jak wyszukiwać wyrażeniami regularnymi w Javie przy użyciu GroupDocs.Search, od instalacji biblioteki i tworzenia indeksu po wykonywanie zarówno zapytań tekstowych, jak i obiektowo‑zorientowanych. Te techniki pozwalają dodać szybkie, oparte na wzorcach wyszukiwanie do dowolnej aplikacji Java, niezależnie od tego, czy tworzysz portal dokumentów, skaner zgodności, czy pipeline do eksploracji danych.
Najczęściej zadawane pytania
Q: Jaka jest różnica między zapytaniami regex opartymi na tekście a zapytaniami opartymi na obiekcie w GroupDocs.Search?
A: Zapytania oparte na tekście są szybkimi jednowierszowymi zapytaniami, podczas gdy zapytania oparte na obiekcie zapewniają wielokrotnego użytku, typowo‑bezpieczne definicje, które mogą być przechowywane i ponownie używane w wielu wyszukiwaniach.
Q: Czy GroupDocs.Search może indeksować dokumenty nientekstowe, takie jak PDF lub pliki Excel?
A: Tak, biblioteka wyodrębnia przeszukiwalny tekst z PDF, DOCX, XLSX, PPTX oraz ponad 30 innych formatów.
Q: Jak zaktualizować istniejący indeks wyszukiwania po dodaniu nowych plików?
A: Wywołaj index.add z nowymi lub zmodyfikowanymi dokumentami; biblioteka połączy zmiany bez przebudowy całego indeksu.
Q: Jakie są typowe pułapki przy używaniu regex z GroupDocs.Search?
A: Zbyt szerokie wzorce (np. .*) mogą powodować spadek wydajności, a niepoprawne wyrażenia mogą nie zwracać wyników. Zawsze najpierw testuj wzorce na próbce danych.
Q: Gdzie mogę znaleźć bardziej zaawansowane samouczki GroupDocs.Search?
A: Odwiedź GroupDocs Documentation po szczegółowe przewodniki, referencje API i przykładowe projekty.
Ostatnia aktualizacja: 2026-07-31
Testowano z: 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());