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 Index dla 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

ProblemRozwiązanie
Brak wyników dla zapytania z wieloznacznikiemZweryfikuj 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ówUżyj index.add(updatedFolder) lub API aktualizacji przyrostowej, aby odświeżyć tylko zmienione pliki.
Wysokie zużycie pamięci przy dużych zbiorach danychZwię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);

Powiązane samouczki