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.xml w 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

  1. Darmowa wersja próbna: Zarejestruj się na wersję próbną, aby wypróbować podstawowe funkcje.
  2. Licencja tymczasowa: Poproś o tymczasowy klucz do rozszerzonego testowania.
  3. 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 na is, prostą regułę działającą dla wielu angielskich słów.
  • Dodawanie końcówek: Dodaje s i es, 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:

  1. Wyszukiwarki: Użytkownicy wpisujący „mouse” powinni również znajdować dokumenty zawierające „mice”. Dostawca może generować takie nieregularne formy.
  2. Narzędzia analizy tekstu: Analiza sentymentu lub ekstrakcja encji staje się bardziej niezawodna, gdy rozpoznawane są wszystkie warianty słów.
  3. 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: ArrayList dział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

Powiązane samouczki