Jak generować formy w Javie przy użyciu GroupDocs.Search
W tym przewodniku nauczysz się jak generować formy w Javie przy użyciu API GroupDocs.Search. Tworząc własny dostawca form słów, umożliwiasz silnikowi wyszukiwania lub analizy tekstu rozpoznawanie każdej wariacji terminu — czy to „cat”, „cats”, „city”, czy „citis”. Poprawia to przywołanie (recall) dramatycznie, jednocześnie utrzymując wysoką precyzję.
Szybkie odpowiedzi
- Co robi dostawca form słów? Generuje alternatywne formy (liczba pojedyncza, mnoga itp.) danego słowa, aby wyszukiwania mogły dopasować wszystkie warianty.
- Jakiej biblioteki wymaga? GroupDocs.Search for Java (wersja 25.4 lub nowsza).
- Czy potrzebna jest licencja? Darmowa wersja próbna działa do oceny; stała licencja jest wymagana w produkcji.
- Jaką wersję Javy obsługuje? JDK 8 lub wyższą.
- Ile linii kodu jest potrzebnych? Około 30 linii dla prostej implementacji dostawcy.
Czym jest funkcja „create word forms provider”?
create word forms provider to własna klasa implementująca IWordFormsProvider. IWordFormsProvider jest interfejsem definiującym, w jaki sposób dostawcy dostarczają alternatywne formy słów do silnika wyszukiwania. Otrzymuje słowo i zwraca tablicę możliwych form — liczby pojedynczej, mnogiej lub innych wariacji językowych — na podstawie zdefiniowanych reguł. Dzięki temu indeks wyszukiwania traktuje „cat” i „cats” jako równoważne, zwiększając przywołanie bez utraty precyzji.
Dlaczego używać GroupDocs.Search do generowania form słów?
GroupDocs.Search oferuje wbudowaną rozszerzalność, pozwalając podłączyć własnego dostawcę bezpośrednio do potoku indeksowania. Przetwarza indeksy zawierające do 10 milionów dokumentów, utrzymując zużycie pamięci poniżej 500 MB dzięki architekturze strumieniowej, a wyniki można buforować, aby uzyskać czasy wyszukiwania krótsze niż milisekunda.
Wymagania wstępne
- Maven zainstalowany oraz JDK 8 lub nowszy skonfigurowany na twoim komputerze.
- Podstawowa znajomość programowania w Javie oraz konfiguracji
pom.xmlw Mavenie. - Dostęp do biblioteki GroupDocs.Search Java (wersja 25.4 lub nowsza).
Konfiguracja GroupDocs.Search dla Javy
Konfiguracja Maven
Dodaj repozytorium i zależność do pliku pom.xml dokładnie tak, jak pokazano poniżej:
<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
Alternatywnie pobierz najnowszy plik JAR ze strony oficjalnych wydań: GroupDocs.Search for Java releases.
Kroki uzyskania licencji
- Darmowa wersja próbna: Zarejestruj się na wersję próbną, aby wypróbować podstawowe funkcje.
- Licencja tymczasowa: Poproś o tymczasowy klucz do rozszerzonego testowania.
- Zakup: Uzyskaj komercyjną licencję do nieograniczonego użycia w produkcji.
Podstawowa inicjalizacja i konfiguracja
Poniższy fragment kodu pokazuje, jak utworzyć indeks — punkt wyjścia do dodawania dokumentów i logiki form słów:
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Initialize an index
Index index = new Index("path/to/index");
System.out.println("GroupDocs.Search initialized successfully.");
}
}
Przewodnik implementacji
Poniżej przechodzimy przez kroki, aby utworzyć dostawcę form słów, który obsługuje proste przekształcenia liczby pojedynczej na mnogą i odwrotnie.
Implementacja SimpleWordFormsProvider
Przegląd
Klasa SimpleWordFormsProvider implementuje IWordFormsProvider. Definicja wyjaśnia jej przeznaczenie:
SimpleWordFormsProvider jest własną implementacją IWordFormsProvider, która dostarcza wariacje liczby pojedynczej i mnogiej dla silnika indeksującego.
Krok 1 – utwórz szkielet klasy
Zacznij od zdefiniowania klasy implementującej IWordFormsProvider. Zachowaj niezmienione instrukcje importu:
import com.groupdocs.search.dictionaries.IWordFormsProvider;
import java.util.ArrayList;
public class SimpleWordFormsProvider implements IWordFormsProvider {
Krok 2 – zaimplementuj getWordForms
Dodaj metodę, która buduje listę możliwych form. Ten blok zawiera główną logikę; później możesz go rozszerzyć, aby obsługiwał bardziej złożone reguły.
getWordForms otrzymuje termin i zwraca String[] zawierające wszystkie wygenerowane wariacje.
@Override
public final String[] getWordForms(String word) {
// Initialize a list to store generated word forms
ArrayList<String> result = new ArrayList<>();
// Singular form for words ending in 'es'
if (word.length() > 2 && word.toLowerCase().endsWith("es")) {
result.add(word.substring(0, word.length() - 2));
}
// Singular form for words ending in 's'
if (word.length() > 1 && word.toLowerCase().endsWith("s")) {
result.add(word.substring(0, word.length() - 1));
}
// Plural form by replacing 'y' with 'is'
if (word.length() > 1 && word.toLowerCase().endsWith("y")) {
result.add(word.substring(0, word.length() - 1).concat("is"));
}
// Basic plural forms
result.add(word.concat("s"));
result.add(word.concat("es"));
// Convert list to array and return
return result.toArray(new String[0]);
}
}
Wyjaśnienie logiki
- Singularizacja: Wykrywa typowe końcówki liczby mnogiej (
es,s) i usuwa je, aby przybliżyć podstawowe słowo. - Pluralizacja: Obsługuje rzeczowniki kończące się na
y, zamieniając je nais, prostą regułę działającą dla wielu angielskich słów. - Dodawanie końcówek: Dodaje
sies, aby objąć regularne formy liczby mnogiej, które mogą nie zostać wykryte przez wcześniejsze sprawdzenia.
Porady dotyczące rozwiązywania problemów
- Wrażliwość na wielkość liter: Metoda używa
toLowerCase()do porównań, zapewniając, że „Cats” i „cats” zachowują się tak samo. - Przypadki brzegowe: Słowa krótsze niż długość końcówki są ignorowane, aby uniknąć zwracania pustych ciągów.
- Wydajność: Dla dużych słowników rozważ buforowanie wyników w
ConcurrentHashMap.
Praktyczne zastosowania
Implementacja create word forms provider może zwiększyć efektywność kilku rzeczywistych scenariuszy:
- Wyszukiwarki: Użytkownicy wpisujący „mouse” powinni również znajdować dokumenty zawierające „mice”. Dostawca może generować takie nieregularne formy.
- Narzędzia analizy tekstu: Analiza sentymentu lub ekstrakcja encji staje się bardziej niezawodna, gdy rozpoznawane są wszystkie warianty słów.
- Systemy zarządzania treścią: Automatyczne generowanie tagów może zawierać synonimy w liczbie mnogiej, poprawiając SEO i wewnętrzne linkowanie.
Rozważania dotyczące wydajności
Gdy wbudowujesz dostawcę w system produkcyjny, pamiętaj o następujących wskazówkach:
- Buforuj często używane formy: Przechowuj wyniki w pamięci, aby uniknąć ponownego przeliczania tego samego słowa.
- Monitoruj stertę JVM: Duże indeksy mogą zwiększać obciążenie pamięci; odpowiednio dostosuj
-Xmx. - Używaj wydajnych kolekcji:
ArrayListdziała dla małych zestawów, ale przy tysiącach form rozważHashSet, aby szybko usuwać duplikaty.
Najlepsze praktyki
- Utrzymuj bibliotekę w najnowszej wersji, aby korzystać z poprawek wydajności.
- Profiluj dostawcę przy realistycznych obciążeniach zapytań, aby wcześnie wykrywać wąskie gardła.
Zakończenie
Teraz wiesz jak generować formy w Javie przy użyciu własnego SimpleWordFormsProvider w GroupDocs.Search. Ten lekki komponent może znacząco poprawić trafność wyników wyszukiwania oraz dokładność analizy językowej w wielu aplikacjach.
Kolejne kroki
- Eksperymentuj z bardziej zaawansowanymi regułami językowymi (nieregularne liczby mnogie, stemming).
- Zintegruj dostawcę z potokiem indeksowania i zmierz poprawę przywołania.
- Poznaj inne funkcje GroupDocs.Search, takie jak słowniki synonimów i własne analizatory.
Wezwanie do działania: Spróbuj dodać SimpleWordFormsProvider do własnego projektu już dziś i zobacz, jak wzbogaca on doświadczenie wyszukiwania!
Sekcja FAQ
Q: Co to jest GroupDocs.Search dla Javy?
A: To potężna biblioteka oferująca wyszukiwanie pełnotekstowe, indeksowanie i funkcje językowe — w tym możliwość podłączenia własnych dostawców form słów.
Q: Jak działa SimpleWordFormsProvider?
A: Generuje alternatywne formy, stosując proste reguły oparte na końcówkach (usuwanie „s/es”, zamiana „y” na „is” oraz dodawanie „s/es”).
Q: Czy mogę dostosować reguły generowania form słów?
A: Oczywiście. Zmodyfikuj metodę getWordForms, aby uwzględnić nieregularne formy, reguły specyficzne dla języka lub integrację z zewnętrznymi słownikami.
Q: Jakie są typowe zastosowania tej funkcji?
A: Wyszukiwarki, potoki analizy tekstu i platformy CMS korzystają z rozpoznawania wariantów liczby pojedynczej i mnogiej.
Q: Czy potrzebna jest komercyjna licencja do użycia w produkcji?
A: Tak — wersja próbna pozwala na eksplorację API, ale zakupiona licencja usuwa limity użytkowania i zapewnia wsparcie.
Ostatnia aktualizacja: 2026-09-02
Testowano z: GroupDocs.Search 25.4 (Java)
Autor: GroupDocs