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łasnymDocumentFilter. - 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.xmlw 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
- Bezpłatna wersja próbna – Zarejestruj się i otrzymaj tymczasowy klucz.
- Licencja tymczasowa – Poproś o długoterminowy klucz do rozszerzonego testowania.
- 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:
Indexreprezentuje bazę danych do przeszukiwania.add()wczytuje pliki; symbol wieloznaczny*.*pobiera wszystkie pliki, aDocumentFilterpozwala 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
| Problem | Dlaczego się pojawia | Rozwiązanie |
|---|---|---|
| Brakujące dokumenty | Nieprawidłowa ścieżka pliku lub niewystarczające uprawnienia | Zweryfikuj ścieżkę i przyznaj dostęp do odczytu |
| Wolne zapytania | Duży indeks bez buforowania lub niepotrzebne wyszukiwanie fonetyczne | Włącz buforowanie, wyłącz wyszukiwanie fonetyczne i rozważ podzielenie indeksu |
| Błędy Out‑of‑Memory | Rozmiar indeksu przekracza pamięć JVM | Zwiększ -Xmx lub użyj indeksowania przyrostowego |
Praktyczne zastosowania
GroupDocs.Search wyróżnia się w rzeczywistych scenariuszach:
- Systemy zarządzania treścią – Zapewniają natychmiastowe wyszukiwanie pełnotekstowe w artykułach, PDF‑ach i zasobach multimedialnych.
- Portale wsparcia klienta – Agenci mogą w kilka sekund znaleźć odpowiednie instrukcje lub polityki.
- 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 (
-Xmx2glub 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‑resourcesprzy 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
- Dokumentacja: GroupDocs.Search Documentation
- Referencja API: API Reference Guide
- Pobieranie: Latest Releases
- GitHub: Source Code on GitHub
- Wsparcie: Forum and Community Support
- Licencja: Request a Temporary License