Przykład wyszukiwania pełnotekstowego w Javie z GroupDocs.Search

Jeśli potrzebujesz przykładu wyszukiwania pełnotekstowego, który działa na plikach PDF, Word, arkuszach kalkulacyjnych i nie tylko, trafiłeś we właściwe miejsce. Ręczne przeszukiwanie tysięcy dokumentów to ogromne wąskie gardło, ale GroupDocs.Search dla Javy automatyzuje indeksowanie i zapytania z błyskawiczną prędkością. W tym samouczku przeprowadzimy Cię przez wszystko, co potrzebne, aby rozpocząć – od dodawania dokumentów do indeksu, tworzenia zapytań Boolean w Javie, po optymalizację wydajności wyszukiwania dla obciążeń produkcyjnych.

Szybkie odpowiedzi

  • Czym jest przykład wyszukiwania pełnotekstowego? Indeksuje surowy tekst każdego dokumentu, abyś mógł natychmiast zapytać o dowolne słowo lub frazę.
  • Która biblioteka obsługuje wiele formatów? GroupDocs.Search dla Javy obsługuje PDF, DOCX, XLSX, PPTX, HTML, TXT i ponad 50 innych typów plików.
  • Jak dodać dokumenty do indeksu? Wywołaj metodę index.add() z ścieżką folderu lub własnym DocumentFilter.
  • Czy mogę wykonywać zapytania Boolean? Tak – łącz terminy przy pomocy AND, OR, NOT, aby uzyskać precyzyjne wyniki.
  • Jak poprawić wydajność? Używaj indeksowania przyrostowego, włącz buforowanie wyników i wyłącz wyszukiwanie fonetyczne, jeśli nie jest potrzebne.

Czym jest przykład wyszukiwania pełnotekstowego?

Przykład wyszukiwania pełnotekstowego pozwala skanować całą treść tekstową dokumentów, przechowywać ją w efektywnym indeksie i natychmiastowo pobierać pasujące rekordy. W przeciwieństwie do wyszukiwania wyłącznie po nazwie pliku, przeszukuje zawartość PDF‑ów, dokumentów Word, arkuszy kalkulacyjnych i innych obsługiwanych formatów, co czyni go idealnym rozwiązaniem dla systemów zarządzania dokumentami, portali wsparcia i wszelkich aplikacji, w których użytkownicy muszą szybko odnaleźć informacje.

Dlaczego warto używać GroupDocs.Search dla Javy?

GroupDocs.Search dla Javy zapewnia obsługę ponad 50 typów plików, w tym PDF, DOCX, XLSX, PPTX, HTML i zwykłego tekstu. Skalowalny jest do milionów plików, przy jednoczesnym niskim zużyciu pamięci dzięki przechowywaniu indeksu na dysku. Biblioteka zawiera zaawansowany język zapytań z wbudowanymi wyszukiwaniami Boolean, fuzzy i fonetycznymi oraz integruje się za pomocą jednej zależności Maven, umożliwiając rozpoczęcie indeksowania w ciągu kilku minut.

Wymagania wstępne

Zanim rozpoczniesz, upewnij się, że masz:

  • Java 11+ (Java 8 działa, ale zalecane jest Java 11 lub nowsza dla lepszej wydajności).
  • Maven do zarządzania zależnościami.
  • Licencję GroupDocs.Search (klucz próbny wystarczy do celów deweloperskich).

Wymagane biblioteki i zależności

Dodaj repozytorium i zależność do swojego pom.xml:

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

Szczegółowe użycie znajdziesz w dokumentacji.

Konfiguracja środowiska

  • Zainstaluj JDK (8 lub nowszy) i skonfiguruj JAVA_HOME.
  • Używaj IDE, takiego jak IntelliJ IDEA lub Eclipse, aby ułatwić debugowanie.

Wymagania wiedzy

  • Podstawowe koncepcje programowania w Javie.
  • Znajomość struktury pom.xml w Mavenie.

Konfiguracja GroupDocs.Search dla Javy

Możesz dodać bibliotekę przez Maven (pokazane wyżej) lub pobrać plik JAR ręcznie.

Bezpośrednie pobranie (jeśli wolisz ręczną konfigurację)

Pobierz najnowszy pakiet z GroupDocs.Search for Java releases.

Kroki uzyskania licencji

  1. Bezpłatna wersja próbna – Zarejestruj się i otrzymaj tymczasowy klucz.
  2. Licencja tymczasowa – Poproś o długoterminowy klucz do rozszerzonego testowania.
  3. Zakup – Przejdź na pełną licencję komercyjną, gdy będziesz gotowy do produkcji.

Podstawowa inicjalizacja i konfiguracja

Utwórz folder indeksu na dysku i sprawdź, czy biblioteka ładuje się poprawnie:

import com.groupdocs.search.Index;

public class SearchSetup {
    public static void main(String[] args) {
        // Initialize an index in the specified directory
        Index index = new Index("C:\\MyIndex");
        
        System.out.println("GroupDocs.Search initialized!");
    }
}

Wskazówka: Trzymaj katalog indeksu na szybkim SSD, aby zminimalizować opóźnienia zapytań.

Dodawanie dokumentów do indeksu

Dlaczego to ważne: Bez zaindeksowanej treści nie ma wyników wyszukiwania. Poniżej pokazujemy, jak dodać całe foldery lub filtrować konkretne typy plików.

Krok 1: utwórz indeks

Klasa Index jest kontenerem wyszukiwalnym, który przechowuje zaindeksowane dokumenty na dysku.

Index index = new Index("C:\\MyIndex");

Krok 2: dodaj dokumenty (add documents to index)

Możesz indeksować wszystko w folderze lub ograniczyć się do określonych rozszerzeń przy użyciu DocumentFilter.

index.add("C:\\Documents\\*.*"); // Adds all documents from the specified directory
// For specific file types, use:
index.add("C:\\Reports", new DocumentFilter() {
    @Override
    public boolean accept(String fileName) {
        return fileName.endsWith(".pdf") || fileName.endsWith(".docx");
    }
});

Wyjaśnienie:

  • Index reprezentuje bazę danych do przeszukiwania.
  • add() wczytuje pliki; symbol wieloznaczny *.* pobiera wszystkie pliki, a DocumentFilter pozwala precyzyjnie dostroić krok add documents to index.

Wykonywanie wyszukiwania (search documents java)

Teraz, gdy indeks zawiera dane, możesz je przeszukiwać.

Krok 1: utwórz zapytanie

String query = "GroupDocs";

Krok 2: wykonaj wyszukiwanie

SearchResult result = index.search(query);
System.out.println("Documents found: " + result.getDocumentCount());

Wyjaśnienie:

  • search() wykonuje zapytanie przeciwko indeksowi.
  • getDocumentCount() informuje, ile dokumentów pasuje – przydatne do szybkich kontroli poprawności.

Zaawansowane techniki zapytań (boolean query java)

Dla precyzyjnej kontroli łącz terminy przy pomocy logiki Boolean.

Zapytania Boolean

Klasa BooleanQuery pozwala budować złożone wyrażenia przy użyciu operatorów AND, OR, NOT.

String booleanQuery = "GroupDocs AND Java";
SearchResult booleanResult = index.search(booleanQuery);

Wyszukiwania fonetyczne (opcjonalnie dla dopasowań fuzzy)

Funkcja PhoneticSearch umożliwia dopasowanie fonetyczne dla błędnie napisanych terminów, ale zwiększa obciążenie.

index.getSettings().setPhoneticSearch(true);

Kiedy używać: Włącz wyszukiwanie fonetyczne tylko wtedy, gdy użytkownicy często popełniają literówki; w przeciwnym razie wyłącz je, aby optymalizować wydajność wyszukiwania.

Typowe problemy i rozwiązania

ProblemDlaczego się pojawiaRozwiązanie
Brakujące dokumentyNieprawidłowa ścieżka pliku lub niewystarczające uprawnieniaZweryfikuj ścieżkę i przyznaj dostęp do odczytu
Wolne zapytaniaDuży indeks bez buforowania lub niepotrzebne wyszukiwanie fonetyczneWłącz buforowanie, wyłącz wyszukiwanie fonetyczne i rozważ podzielenie indeksu
Błędy Out‑of‑MemoryRozmiar indeksu przekracza pamięć JVMZwiększ -Xmx lub użyj indeksowania przyrostowego

Praktyczne zastosowania

GroupDocs.Search wyróżnia się w rzeczywistych scenariuszach:

  1. Systemy zarządzania treścią – Zapewniają natychmiastowe wyszukiwanie pełnotekstowe w artykułach, PDF‑ach i zasobach multimedialnych.
  2. Portale wsparcia klienta – Agenci mogą w kilka sekund znaleźć odpowiednie instrukcje lub polityki.
  3. Repozytoria dokumentów przedsiębiorstwa – Przeszukiwanie umów, raportów i dokumentów zgodności bez przenoszenia danych do osobnej bazy.

Rozważania dotyczące wydajności

Optymalizacja wydajności wyszukiwania

  • Indeksowanie przyrostowe: Dodawaj lub aktualizuj tylko zmienione pliki zamiast przebudowywać cały indeks.
  • Buforowanie: Przechowuj często używane wyniki zapytań w pamięci.
  • Monitorowanie zasobów: Dostosuj pamięć JVM (-Xmx2g lub wyższą) w zależności od rozmiaru indeksu.

Wytyczne dotyczące zużycia zasobów

  • Przechowuj folder indeksu na szybkim SSD lub dysku NVMe.
  • Monitoruj CPU i pamięć podczas masowego indeksowania; ograniczaj operacje wsadowe, aby uniknąć nagłych skoków obciążenia.

Najlepsze praktyki zarządzania pamięcią w Javie

  • Używaj try‑with‑resources przy pracy ze strumieniami.
  • Nulluj duże obiekty po użyciu, aby ułatwić działanie garbage collector.

Zakończenie

Masz teraz kompletny, gotowy do produkcji przykład wyszukiwania pełnotekstowego w Javie z użyciem GroupDocs.Search. Od konfiguracji biblioteki, dodawania dokumentów do indeksu, przez tworzenie zapytania Boolean w Javie, po optymalizację wydajności wyszukiwania – każdy krok został omówiony.

Kolejne kroki

Zgłębiaj bardziej zaawansowane funkcje, takie jak własne analizatory, słowniki synonimów i integrację z chmurą, przeglądając oficjalną dokumentację GroupDocs.Search.


Najczęściej zadawane pytania

P: Jakie formaty plików obsługuje GroupDocs.Search?
O: Ponad 50 formatów, w tym PDF, DOCX, XLSX, PPTX, HTML, TXT i wiele typów obrazów.

P: Jak radzić sobie z dużymi zestawami danych?
O: Podziel je na wiele indeksów, aktualizuj przyrostowo i włącz buforowanie wyników, aby utrzymać niskie opóźnienia.

P: Czy GroupDocs.Search może działać w środowiskach chmurowych?
O: Tak – możesz skierować folder indeksu na zamontowaną przestrzeń w chmurze (np. Azure Blob, AWS S3 za pomocą sterownika systemu plików).

P: Jakie są zalety GroupDocs.Search w porównaniu z innymi bibliotekami?
O: Obsługa wielu formatów, wbudowane zapytania Boolean/phonetyczne oraz lekki interfejs Java, który przetwarza miliony dokumentów przy niskim zużyciu pamięci.

P: Jak rozwiązywać problemy z wydajnością?
O: Przejrzyj ustawienia indeksu, wyłącz wyszukiwanie fonetyczne, jeśli nie jest potrzebne, oraz monitoruj zużycie pamięci i CPU JVM podczas indeksowania i zapytań.


Ostatnia aktualizacja: 2026-08-15
Testowano z: GroupDocs.Search 25.4
Autor: GroupDocs

Zasoby

Powiązane samouczki