Jak wyszukiwać frazy z wieloznacznikami w GroupDocs.Search dla Javy
W nowoczesnych aplikacjach skoncentrowanych na dokumentach, how to search phrase szybko i dokładnie jest czynnikiem decydującym o doświadczeniu użytkownika. Niezależnie od tego, czy budujesz bazę wiedzy, katalog e‑commerce, czy repozytorium oparte na zgodności, możliwość zlokalizowania dokładnej frazy — lub jej elastycznej wariacji — utrzymuje użytkowników produktywnych i zmniejsza obciążenie wsparcia. Ten samouczek przeprowadzi Cię przez instalację GroupDocs.Search for Java, tworzenie indeksu wyszukiwania, ładowanie dokumentów oraz uruchamianie zarówno zapytań dokładnych, jak i wzbogaconych o wieloznaczniki, wszystko przy użyciu przejrzystych, gotowych do produkcji fragmentów kodu.
Szybkie odpowiedzi
- What is the primary benefit of phrase searches? Precyzyjne dopasowanie kolejności słów i ich bliskości, gwarantujące, że zwrócone zostaną tylko dokumenty zawierające dokładną sekwencję.
- Can wildcards be used inside a phrase? Tak — wieloznaczniki pozwalają pominąć lub zastąpić słowa, zachowując ogólną kolejność.
- Do I need a license for development? Darmowa wersja próbna działa do testów; pełna licencja jest wymagana w środowiskach produkcyjnych.
- Which Maven version should I use? Najnowsze wydanie GroupDocs.Search for Java (np. 25.4 w momencie pisania).
- Is this approach suitable for large document sets? Absolutnie — GroupDocs.Search radzi sobie z kolekcjami liczącymi setki tysięcy dokumentów przy opóźnieniu zapytań poniżej sekundy, gdy indeks jest zoptymalizowany.
Co to jest „how to search phrase”?
Wyszukiwanie frazy oznacza szukanie określonej sekwencji słów w dokumencie.
Gdy wykonujesz zapytanie frazowe, silnik sprawdza, czy słowa pojawiają się w dokładnej kolejności i w określonej bliskości, eliminując nieistotne trafienia, które zawierają te same słowa w innym kontekście. Dzięki temu wyszukiwanie fraz jest idealne do znajdowania klauzul prawnych, kodów produktów lub dowolnego tekstu, w którym kolejność ma znaczenie.
Dlaczego warto używać GroupDocs.Search do zapytań frazowych i z wieloznacznikami?
GroupDocs.Search zapewnia wysoką przepustowość indeksowania do 1 miliona dokumentów przy zachowaniu odpowiedzi na zapytania w czasie poniżej sekundy na typowym sprzęcie serwerowym. Jego język zapytań obsługuje dokładne frazy, proste wieloznaczniki * i ?, oraz zaawansowane wzorce, takie jak zakresy liczbowe (*2~5). Biblioteka integruje się z dowolną aplikacją Java poprzez Maven lub bezpośrednie pobranie JAR‑a i działa na Java 8+ bez zewnętrznych usług.
Wymagania wstępne
- Java 8 lub nowsza (zalecany Java 11 LTS).
- Maven 3 lub nowszy (jeśli preferujesz zarządzanie zależnościami).
- Podstawowa znajomość struktury projektu Java oraz koncepcji obiektowo‑zorientowanych.
Konfiguracja GroupDocs.Search dla Javy
Korzystanie z Maven
Dodaj oficjalne repozytorium i zależność GroupDocs.Search do swojego pom.xml:
<!-- Maven repository -->
<repositories>
<repository>
<id>groupdocs-releases</id>
<url>https://repository.groupdocs.com/release</url>
</repository>
</repositories>
<!-- GroupDocs.Search dependency -->
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
Bezpośrednie pobranie
Alternatywnie, pobierz najnowszy JAR z oficjalnej strony wydań: GroupDocs.Search for Java releases.
Uzyskanie licencji
- Free Trial: Idealna do szybkich eksperymentów; ograniczona do 100 MB indeksowanych danych.
- Temporary License: Poproś o 30‑dniowy klucz ewaluacyjny w portalu GroupDocs.
- Full License: Wymagana do użytku produkcyjnego i nieograniczonej pojemności indeksowania.
Podstawowa inicjalizacja i konfiguracja
Utwórz folder, w którym będą przechowywane pliki indeksu, i zainicjalizuj obiekt Index. Klasa Index reprezentuje indeks wyszukiwalny przechowywany na dysku i udostępnia metody dodawania, aktualizacji i zapytań dokumentów.
<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>
Dodaj dokumenty, które mają być przeszukiwane:
String indexFolder = "YOUR_OUTPUT_DIRECTORY/PhraseSearch";
Index index = new Index(indexFolder);
Jak wyszukiwać frazy z wieloznacznikami w GroupDocs.Search
Ten rozdział demonstruje trzy poziomy wyszukiwania fraz — dokładne dopasowanie, prosty wieloznacznik oraz zaawansowane wzorce wieloznaczników — pokazując, jak utworzyć indeks, dodać dokumenty i wykonać każdy typ zapytania przy użyciu zwięzłego kodu Java. Przykłady ilustrują zarówno zapytania tekstowe, jak i oparte na obiektach, umożliwiając deweloperom integrację elastycznych możliwości wyszukiwania w swoich aplikacjach.
Proste wyszukiwanie frazy
Przegląd
Użyj tego podejścia, gdy potrzebujesz dokładnego dopasowania sekwencji słów, np. klauzuli prawnej lub numeru modelu produktu.
Bezpośrednia odpowiedź
Załaduj indeks, wywołaj search z frazą w cudzysłowie (np. "quick brown fox"), a silnik zwróci tylko dokumenty zawierające tę dokładną sekwencję, zachowując kolejność słów i odstępy. Zapytanie wykonuje się w milisekundach, nawet przy indeksach zawierających setki tysięcy plików.
Krok 1: Utwórz indeks
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentsFolder);
Krok 2: Dodaj dokumenty do indeksu
Index index = new Index(indexFolder);
Krok 3: Wyszukaj konkretną frazę (forma tekstowa)
index.add(documentsFolder);
Krok 4: Zapytania oparte na obiektach (wyszukiwanie dokładnej frazy)
String queryText = "\"sollicitudin at ligula\"";
SearchResult resultText = index.search(queryText);
Wyszukiwanie frazy z wieloznacznikami
Przegląd
Wieloznaczniki (* dla dowolnej liczby znaków, ? dla jednego znaku) pozwalają pominąć zmienne słowa, zachowując jednocześnie otaczający je porządek.
Bezpośrednia odpowiedź
Wstaw token wieloznacznika (*) wewnątrz frazy w cudzysłowie — np. "quick * fox" — aby dopasować dowolne słowo(a) pomiędzy quick a fox. Silnik rozwija wieloznacznik w czasie zapytania, przeszukując tylko indeksowane terminy spełniające wzorzec, co utrzymuje wydajność porównywalną z prostym zapytaniem frazowym.
Krok 1: Utwórz indeks
(Tak samo jak w prostym wyszukiwaniu frazy.)
Krok 2: Dodaj dokumenty do indeksu
(Tak samo jak powyżej.)
Krok 3: Wyszukiwanie w formie tekstowej z wieloznacznikami
SearchQuery word1 = SearchQuery.createWordQuery("sollicitudin");
SearchQuery word2 = SearchQuery.createWordQuery("at");
SearchQuery word3 = SearchQuery.createWordQuery("ligula");
SearchQuery queryObject = SearchQuery.createPhraseSearchQuery(word1, word2, word3);
SearchResult resultObject = index.search(queryObject);
Krok 4: Zapytania oparte na obiektach z wieloznacznikami (Wildcard Search Java)
String queryText = "\"sollicitudin *0~~3 ligula\"";
SearchResult resultText = index.search(queryText);
Zaawansowane wyszukiwanie wieloznacznikami
Przegląd
Łącz zakresy liczbowe, opcjonalne znaki i własne wzorce podobne do wyrażeń regularnych, aby uzyskać zaawansowane dopasowanie, np. numerów wersji lub kodów produktów.
Bezpośrednia odpowiedź
Użyj rozszerzonej składni wieloznaczników *min~max, aby określić zakres dopuszczalnych odległości słów, lub ? do dopasowania jednego znaku. Na przykład, "error *2~5 code" znajdzie słowo error po którym nastąpi od dwóch do pięciu słów, a następnie code. Ta precyzja zmniejsza liczbę fałszywych trafień, jednocześnie oferując elastyczność.
Krok 1: Utwórz indeks
(Powtórzone dla jasności.)
Krok 2: Dodaj dokumenty do indeksu
(Powtórzone.)
Krok 3: Wyszukiwanie w formie tekstowej z złożonymi wzorcami wieloznaczników
SearchQuery word1 = SearchQuery.createWordQuery("sollicitudin");
SearchQuery wildcard2 = SearchQuery.createWildcardQuery(0, 3);
SearchQuery word3 = SearchQuery.createWordQuery("ligula");
SearchQuery queryObject = SearchQuery.createPhraseSearchQuery(word1, wildcard2, word3);
SearchResult resultObject = index.search(queryObject);
Krok 4: Zapytania oparte na obiektach z zaawansowanymi wieloznacznikami
String queryText = "\"sollicitudin *0~~3 ?(0~4)la\"";
SearchResult resultText = index.search(queryText);
Praktyczne zastosowania
- Systemy zarządzania treścią: Redaktorzy mogą szybko znajdować dokładne klauzule lub elastyczne fragmenty bez ręcznego przeglądania setek stron.
- Katalogi e‑commerce: Klienci znajdują produkty, nawet gdy pomijają opis lub używają synonimów, dzięki tolerancji na wieloznaczniki.
- Prawo i zgodność: Szybko izolują fragmenty umów, które mogą występować z drobnymi wariacjami w różnych dokumentach.
Rozważania dotyczące wydajności
- Utwórz indeks wyszukiwania tylko raz dla stabilnego zestawu dokumentów; używaj tego samego obiektu
Indexdla wszystkich zapytań. - Dodawaj dokumenty stopniowo, gdy pojawiają się nowe pliki — unikaj przebudowy całego indeksu, aby utrzymać niskie zużycie CPU.
- Projektuj precyzyjne wzorce wieloznaczników; szersze wzorce (
*) zwiększają liczbę rozwinięć terminów i mogą podnieść obciążenie CPU. - Wywołuj
index.optimize()okresowo (jeśli jest wspierane), aby skompaktować indeks i utrzymać kontrolę nad zużyciem pamięci.
Typowe problemy i rozwiązania
| Problem | Rozwiązanie |
|---|---|
| Brak wyników dla zapytania z wieloznacznikiem | Zweryfikuj składnię wieloznacznika (*min~max) i upewnij się, że docelowe słowa występują w określonej odległości. |
| Indeks staje się nieaktualny po aktualizacji plików | Użyj index.add(updatedFolder) lub API aktualizacji przyrostowej, aby odświeżyć tylko zmienione pliki. |
| Wysokie zużycie pamięci przy dużych zbiorach danych | Zwiększ przydział pamięci JVM (-Xmx4g lub wyższy) i rozważ podzielenie indeksu na wiele shardów w celu równoległego przetwarzania. |
Najczęściej zadawane pytania
Q: Jaka jest różnica między wieloznacznikiem a wyszukiwaniem frazy?
A: Wyszukiwanie frazy wymaga dokładnej kolejności słów i odstępów, natomiast wieloznacznik pozwala zastąpić lub pominąć słowa w tej kolejności, oferując elastyczne dopasowanie.
Q: Czy mogę używać wieloznaczników z danymi liczbowymi w wyszukiwaniach?
A: Tak — parametry zakresu wieloznacznika (*min~max) działają zarówno na liczbach, jak i na słowach, umożliwiając zapytania typu "version *1~3".
Q: Jak radzić sobie z bardzo dużymi kolekcjami dokumentów?
A: Utrzymuj indeks zoptymalizowany, wykonuj aktualizacje przyrostowe i twórz konkretne wzorce wieloznaczników, aby ograniczyć rozwinięcia terminów. GroupDocs.Search może indeksować 1 milion dokumentów przy opóźnieniu zapytań poniżej 200 ms na standardowym sprzęcie.
Q: Czy GroupDocs.Search nadaje się do scenariuszy wyszukiwania w czasie rzeczywistym?
A: Absolutnie — po zbudowaniu indeksu zapytania wykonują się w milisekundach, co czyni go idealnym dla interaktywnych pól wyszukiwania i funkcji autouzupełniania.
Q: Czy mogę zintegrować tę bibliotekę z istniejącym projektem Java?
A: Tak. Dodaj zależność Maven lub JAR, zainicjalizuj Index jak pokazano i możesz od razu wykonywać zapytania bez modyfikacji istniejącego kodu.
Ostatnia aktualizacja: 2026-05-28
Testowano z: GroupDocs.Search 25.4 for Java
Autor: GroupDocs
double word1 = SearchQuery.createWordQuery("sollicitudin");
SearchQuery wildcard2 = SearchQuery.createWildcardQuery(0, 3);
WordPattern pattern = new WordPattern();
pattern.appendWildcard(0, 4);
pattern.appendString("la");
SearchQuery wordPattern3 = SearchQuery.createWordPatternQuery(pattern);
SearchQuery queryObject = SearchQuery.createPhraseSearchQuery(word1, wildcard2, wordPattern3);
SearchResult resultObject = index.search(queryObject);