Wyszukiwanie pełnotekstowe w Javie: budowanie indeksu za pomocą GroupDocs.Search
W nowoczesnych aplikacjach opartych na danych, java full text search jest silnikiem, który pozwala natychmiast odnajdywać informacje wśród tysięcy plików. Ten samouczek przeprowadzi Cię przez każdy krok — od dodania zależności GroupDocs.Search po precyzyjne dostosowanie słownika alfabetu — abyś mógł dostarczać szybkie i dokładne wyniki wyszukiwania w każdym projekcie Java.
Szybkie odpowiedzi
- Co to jest „java full text search”? Jest to proces budowania indeksu, który umożliwia szybkie zapytania tekstowe w wielu plikach w aplikacji Java.
- Która biblioteka obsługuje to od razu? GroupDocs.Search for Java zapewnia gotowe indeksowanie, zarządzanie słownikiem i wykonywanie zapytań.
- Czy potrzebuję licencji? Darmowa wersja próbna jest idealna do oceny; pełna licencja jest wymagana przy wdrożeniach produkcyjnych.
- Czy mogę dostosować obsługę znaków? Oczywiście — użyj słownika alfabetu, aby zdefiniować własne typy znaków.
- Czy Maven jest obowiązkowy? Maven upraszcza obsługę zależności, ale możesz także pobrać plik JAR bezpośrednio.
Co to jest java full text search i dlaczego zarządzać słownikiem alfabetu?
Indeks java full text search przechowuje tokenizowane reprezentacje Twoich dokumentów, umożliwiając natychmiastowe wyszukiwanie słów lub fraz. Słownik alfabetu informuje silnik, jak traktować każdy znak (litera, cyfra, symbol), co bezpośrednio wpływa na tokenizację i trafność wyszukiwania — szczególnie w przypadku znaków specjalnych lub reguł specyficznych dla języka.
Dlaczego używać GroupDocs.Search do java full text search?
GroupDocs.Search przetwarza do 10 000 dokumentów bez ładowania ich w całości do pamięci, zapewniając czasy zapytań poniżej sekundy. Oferuje pełną kontrolę nad typami znaków, obsługuje ponad 50 formatów wejścia i wyjścia oraz skaluje się poziomo na wielu serwerach, co czyni go najsolidniejszym wyborem dla wyszukiwania klasy korporacyjnej.
Wymagania wstępne
- GroupDocs.Search for Java (najnowsze wydanie).
- Java 17 lub wyższa zainstalowana na Twoim komputerze deweloperskim.
- Maven 3.6+ (lub możliwość ręcznego dodania pliku JAR).
Wymagane biblioteki, wersje i zależności
- GroupDocs.Search for Java – najnowsza stabilna wersja.
- Nie są wymagane dodatkowe biblioteki firm trzecich do podstawowego indeksowania.
Wymagania dotyczące konfiguracji środowiska
Upewnij się, że masz środowisko kompatybilne z Mavenem. Jeśli Maven nie jest jeszcze zainstalowany, pobierz go z oficjalnej strony: Apache Maven.
Wymagania wiedzy
Znajomość składni Java oraz operacji I/O na plikach będzie pomocna, ale poniższy przewodnik krok po kroku obejmuje wszystko, co jest potrzebne.
Konfiguracja GroupDocs.Search dla Java
Konfiguracja Maven
Add the repository and dependency to your pom.xml file:
<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>
Bezpośrednie pobranie
Jeśli wolisz nie używać Maven, pobierz najnowszy plik JAR ze strony oficjalnych wydań: GroupDocs.Search for Java releases.
Kroki uzyskania licencji
- Free trial – Rozpocznij od wersji próbnej, aby przetestować wszystkie funkcje.
- Temporary license – Poproś o tymczasowy klucz do rozszerzonego testowania.
- Full license – Kup licencję produkcyjną do nieograniczonego użycia.
Podstawowa inicjalizacja i konfiguracja
Create an Index instance that points to the folder where the search index will be stored:
import com.groupdocs.search.*;
public class SearchIndexSetup {
public static void main(String[] args) {
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\Index";
Index index = new Index(indexFolder);
}
}
Przewodnik implementacji
Poniżej znajduje się pełny przewodnik najczęstszych operacji, które wykonasz przy budowaniu rozwiązania java full text search.
Tworzenie lub otwieranie indeksu
Klasa Index jest podstawowym obiektem reprezentującym kolekcję możliwą do przeszukiwania, przechowywaną na dysku.
import com.groupdocs.search.*;
String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\Index";
Index index = new Index(indexFolder);
- Parameters:
indexFolder– ścieżka, w której znajdują się pliki indeksu. - Purpose: Ustawia środowisko wyszukiwania dla późniejszego indeksowania i zapytań.
Eksportowanie słownika alfabetu do pliku
Obiekt AlphabetDictionary przechowuje mapowania typów znaków. Eksportowanie go pozwala później ponownie użyć lub przeanalizować konfigurację.
import com.groupdocs.search.dictionaries.*;
String fileName = "YOUR_OUTPUT_DIRECTORY\\Alphabet.dat";
index.getDictionaries().getAlphabet().exportDictionary(fileName);
- Parameters:
fileName– plik docelowy dla wyeksportowanego słownika.
Czyszczenie słownika alfabetu
Zresetuj słownik do stanu domyślnego przed zastosowaniem własnych reguł:
import com.groupdocs.search.dictionaries.*;
if (index.getDictionaries().getAlphabet().getCount() > 0) {
index.getDictionaries().getAlphabet().clear();
}
- Purpose: Usuwa wszystkie wcześniej zdefiniowane typy znaków, zapewniając czystą kartę.
Importowanie słownika alfabetu z pliku
Przywróć wcześniej zapisaną konfigurację słownika:
import com.groupdocs.search.dictionaries.*;
index.getDictionaries().getAlphabet().importDictionary(fileName);
- Parameters:
fileName– ścieżka do pliku.datzawierającego słownik.
Ustawianie typu znaku w słowniku alfabetu
Enum CharacterType określa, jak znaki są interpretowane podczas tokenizacji. Dostosuj, jak konkretne znaki są traktowane w trakcie tokenizacji. Wartość CharacterType.Blended instruuje silnik, aby traktował myślnik jako część słowa, a nie jako separator.
import com.groupdocs.search.dictionaries.*;
if (index.getDictionaries().getAlphabet().getCharacterType('-') != CharacterType.Blended) {
index.getDictionaries().getAlphabet().setRange(new char[] { '-' }, CharacterType.Blended);
}
- Parameters: Znak (
'-') i jego nowyCharacterType. - Why it matters: Dostosowanie typów znaków poprawia trafność wyszukiwania dla terminów z myślnikami, identyfikatorów lub własnych symboli.
Indeksowanie dokumentów z folderu
Dodaj wszystkie pliki w katalogu do indeksu wyszukiwania jedną operacją:
import com.groupdocs.search.*;
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentsFolder);
- Parameters:
documentsFolder– folder zawierający dokumenty, które chcesz zindeksować.
Wyszukiwanie w indeksie
Klasa SearchResult zawiera listę dopasowanych dokumentów i fragmentów zwróconych przez zapytanie. Wykonaj zapytanie i pobierz wyniki:
import com.groupdocs.search.results.*;
String query = "Elliot-Murray-Kynynmound";
SearchResult result = index.search(query);
- Parameters:
query– tekst, którego szukasz. - Result: Obiekt
SearchResultzawierający dopasowane dokumenty i fragmenty.
Typowe przypadki użycia java full text search
- Content management systems (CMS): Przyspieszanie pobierania artykułów i zasobów.
- Legal document repositories: Natychmiastowe znajdowanie klauzul lub odniesień do spraw.
- Research libraries: Indeksowanie tysięcy publikacji w celu natychmiastowego wyszukiwania słów kluczowych.
- E‑commerce catalogs: Ulepszenie wyszukiwania produktów poprzez własną tokenizację.
- Customer support portals: Umożliwienie agentom szybkiego znajdowania odpowiednich zgłoszeń lub artykułów bazy wiedzy.
Rozważania dotyczące wydajności
- Incremental updates: Ponowne indeksowanie tylko nowych lub zmienionych plików, aby utrzymać indeks aktualny bez pełnego przebudowywania.
- Query optimization: Utrzymuj zapytania zwięzłe; unikaj zbyt szerokich wyszukiwań z wieloznacznikami.
- Resource monitoring: Monitoruj zużycie pamięci podczas dużego indeksowania wsadowego — dostosuj rozmiar sterty JVM w razie potrzeby.
- Dictionary size: Eksportuj/importuj słownik alfabetu tylko wtedy, gdy go modyfikujesz; niepotrzebny I/O może spowolnić uruchamianie.
Najczęściej zadawane pytania
Q: Jakie są wymagania wstępne do używania GroupDocs.Search?
A: Zainstaluj Java 17+, Maven 3.6+ (lub pobierz plik JAR) i dodaj zależność GroupDocs.Search.
Q: Jak uzyskać licencję do użytku produkcyjnego?
A: Rozpocznij od wersji próbnej, poproś o tymczasowy klucz do rozszerzonego testowania, a następnie zakup pełną licencję w portalu GroupDocs.
Q: Czy mogę dostosować typy znaków w słowniku alfabetu?
A: Tak — użyj metod setRange lub set, aby przypisać własne wartości CharacterType dowolnemu znakowi lub zakresowi.
Q: Czy można eksportować i importować słownik alfabetu?
A: Oczywiście — użyj metod exportDictionary i importDictionary, aby zachować lub udostępnić konfiguracje słownika.
Q: Z jaką wersją testowano ten przewodnik?
A: Przykłady zostały zweryfikowane z GroupDocs.Search for Java wersja 25.4.
Ostatnia aktualizacja: 2026-09-06
Testowano z: GroupDocs.Search for Java 25.4
Autor: GroupDocs