Jak wyszukiwać z synonimami w Javie przy użyciu GroupDocs.Search

Jeśli chcesz, aby Twoi użytkownicy znajdowali właściwą treść, nawet gdy wpisują różne słowa, search with synonyms jest odpowiedzią. W tym przewodniku przeprowadzimy Cię przez wszystko, co musisz wiedzieć — tworzenie słownika synonimów, import/eksport, zarządzanie grupami synonimów oraz ostateczne wykonanie wyszukiwania, które automatycznie rozszerza zapytania przy użyciu tych synonimów. Niezależnie od tego, czy budujesz CMS, katalog e‑commerce, czy repozytorium dokumentów prawnych, dodanie obsługi synonimów może dramatycznie zwiększyć trafność i współczynniki konwersji.

Szybkie odpowiedzi

  • Jaki jest podstawowy krok, aby dodać synonimy? Zainicjalizuj Index i użyj API SynonymDictionary.
  • Czy mogę zaimportować słownik synonimów? Tak – użyj importDictionary(path), aby załadować wstępnie zbudowany plik.
  • Jak włączyć search with synonyms? Ustaw SearchOptions.setUseSynonymSearch(true).
  • Czy można zarządzać grupami synonimów? Oczywiście – możesz wyczyścić, dodać lub pobrać grupy za pomocą API słownika.
  • Co powinienem wziąć pod uwagę przy optymalizacji indeksu wyszukiwania? Regularnie usuwaj nieużywane wpisy i dostosowuj pamięć JVM dla dużych zestawów danych.

Co to jest search with synonyms?

„Search with synonyms” oznacza, że silnik traktuje zestaw słów lub fraz jako wymienne. Gdy użytkownik wpisze „better”, silnik również szuka „improve”, „enhance” lub dowolnego innego terminu zdefiniowanego w tej samej grupie synonimów, dostarczając bogatsze wyniki bez zmiany zapytania użytkownika.

Dlaczego włączyć obsługę synonimów w GroupDocs.Search?

  • Better user experience: Odwiedzający znajdują odpowiednie dokumenty, nawet jeśli używają innej terminologii.
  • Higher conversion rates: Platformy e‑commerce uzyskują więcej sprzedaży, dopasowując różne terminy produktów.
  • Simplified maintenance: Jeden centralny słownik może obsługiwać wiele aplikacji, co ułatwia aktualizacje.

Wymagania wstępne

  • GroupDocs.Search for Java w wersji 25.4 lub nowszej.
  • IDE Java (IntelliJ IDEA, Eclipse itp.) z obsługą Maven.
  • Podstawowa znajomość Javy oraz struktury projektu Maven.

Wymagane biblioteki i wersje

  • GroupDocs.Search for Java w wersji 25.4 lub wyższej.

Konfiguracja środowiska

  • IDE według wyboru (IntelliJ IDEA, Eclipse itp.).
  • Maven do zarządzania zależnościami.

Wymagania wiedzy

  • Programowanie obiektowe w Javie.
  • Podstawowe operacje I/O na plikach.

Konfiguracja GroupDocs.Search dla Javy

Informacje o instalacji

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>

Direct Download – możesz także pobrać najnowszy JAR z GroupDocs.Search for Java releases.

Uzyskanie licencji

  • Free Trial: Testuj podstawowe funkcje bez licencji.
  • Temporary License: Rozszerz możliwości wersji próbnej podczas oceny.
  • Purchase: Wymagane do użytku produkcyjnego i pełnego zestawu funkcji.

Podstawowa inicjalizacja i konfiguracja

Utwórz instancję Index, a następnie dodaj dokumenty, które mają być przeszukiwane:

import com.groupdocs.search.*;

String indexFolder = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/ManagingDictionaries/SynonymDictionary/Index";
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY/DocumentsPath2";

// Creating an index in the specified folder
Index index = new Index(indexFolder);

// Adding documents from a specific folder to the index
index.add(documentsFolder);

Jak dodać synonimy do indeksu wyszukiwania

Tworzenie indeksu jest podstawą. Poniżej przeprowadzimy Cię przez niezbędne kroki, każdy połączony z dokładnym kodem, którego potrzebujesz.

Funkcja 1: Tworzenie i indeksowanie indeksu

// Create an index in the specified folder
Index index = new Index(indexFolder);

// Add documents from the given folder to the index
index.add(documentsFolder);

Funkcja 2: Pobieranie synonimów dla słowa

String[] synonyms = index.getDictionaries().getSynonymDictionary().getSynonyms("make");

Funkcja 3: Pobieranie grup synonimów

String[][] synonymGroups = index.getDictionaries().getSynonymDictionary().getSynonymGroups("make");

Funkcja 4: Zarządzanie wpisami słownika synonimów

if (index.getDictionaries().getSynonymDictionary().getCount() > 0) {
    index.getDictionaries().getSynonymDictionary().clear();
}

String[][] newSynonymGroups = new String[][]{
    new String[] { "achieve", "accomplish", "attain", "reach" },
    new String[] { "accept", "take", "have" },
    new String[] { "improve", "better" }
};

index.getDictionaries().getSynonymDictionary().addRange(newSynonymGroups);

Funkcja 5: Eksportowanie synonimów do pliku

String exportFilePath = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/ManagingDictionaries/SynonymDictionary/Synonyms.dat";
index.getDictionaries().getSynonymDictionary().exportDictionary(exportFilePath);

Funkcja 6: Importowanie synonimów z pliku

index.getDictionaries().getSynonymDictionary().importDictionary(exportFilePath);

Funkcja 7: Wykonywanie wyszukiwania z obsługą synonimów

String query = "better";
SearchOptions options = new SearchOptions();
options.setUseSynonymSearch(true);

SearchResult result = index.search(query, options);

Jak wyszukiwać z synonimami

Poprzez włączenie setUseSynonymSearch(true), silnik automatycznie rozszerza zapytanie przy użyciu słownika synonimów, który utworzyłeś lub zaimportowałeś. Ten krok jest kluczowy dla dostarczania bogatszych wyników bez zmiany zachowania wyszukiwania użytkownika.

Jak zaimportować słownik synonimów

Jeśli masz już plik .dat przygotowany w innym środowisku, po prostu wywołaj importDictionary(path). To idealne rozwiązanie do synchronizacji słowników między serwerami deweloperskimi, testowymi i produkcyjnymi.

Jak zarządzać grupami synonimów

Grupy synonimów pozwalają traktować zestaw terminów jako jedną logiczną jednostkę. Dodawanie, czyszczenie lub pobieranie grup odbywa się za pomocą API SynonymDictionary, jak pokazano w powyższych fragmentach kodu.

Jak zoptymalizować indeks wyszukiwania

  • Regularnie usuwaj nieużywane wpisy: Użyj clear() przed masowymi aktualizacjami.
  • Dostosuj pamięć JVM: Duże słowniki mogą wymagać więcej pamięci.
  • Utrzymuj bibliotekę w najnowszej wersji: Nowe wydania zawierają ulepszenia wydajności.

Praktyczne zastosowania

  1. Content Management Systems (CMS): Użytkownicy znajdują artykuły, nawet gdy używają alternatywnej terminologii.
  2. E‑commerce Platforms: Wyszukiwanie produktów staje się tolerancyjne na synonimy, takie jak „laptop” vs. „notebook”.
  3. Document Repositories: Archiwa prawne lub medyczne korzystają z grup synonimów specyficznych dla danej dziedziny.

Rozważania dotyczące wydajności

  • Optymalizuj przechowywanie indeksu: Okresowo przebudowuj indeks, aby usunąć przestarzałe dane.
  • Zarządzaj zużyciem pamięci: Monitoruj zużycie pamięci heap przy ładowaniu dużych plików synonimów.
  • Regularne aktualizacje: Korzystaj z najnowszej wersji GroupDocs.Search, aby uzyskać poprawki błędów i zwiększenie szybkości.

Typowe problemy i rozwiązania

ProblemPrawdopodobna przyczynaRozwiązanie
Brak wyników synonimówsetUseSynonymSearch(true) nie ustawiono lub słownik nie został zaimportowanySprawdź, czy opcja jest włączona i plik słownika istnieje.
Błędy Out‑of‑memory podczas importuBardzo duży plik .dat przekracza pamięć heap JVMZwiększ rozmiar heap -Xmx lub importuj w mniejszych partiach.
Duplikaty wpisów w wynikachTen sam termin pojawia się w wielu grupach synonimówScal nakładające się grupy używając clear(), a następnie addRange().

Najczęściej zadawane pytania

Q: Jakie są minimalne wymagania systemowe dla używania GroupDocs.Search?
A: Wystarczy nowoczesny system operacyjny z kompatybilnym JDK (Java 8 lub nowszy).

Q: Jak często powinienem odświeżać słownik synonimów?
A: Aktualizuj go, gdy pojawi się nowa terminologia — użyj clear() a następnie addRange() dla czystego odświeżenia.

Q: Czy mogę używać GroupDocs.Search bez zakupu licencji?
A: Bezpłatna wersja próbna działa w ocenie, ale licencja jest wymagana w środowiskach produkcyjnych.

Q: Jakie są najlepsze praktyki indeksowania dużych zbiorów danych?
A: Podziel dane na logiczne partie, monitoruj zużycie pamięci heap i zaplanuj regularną konserwację indeksu.

Q: Nie widzę oczekiwanych dopasowań synonimów — co sprawdzić?
A: Sprawdź, czy słownik został poprawnie zaimportowany, czy setUseSynonymSearch(true) jest aktywne oraz czy terminy znajdują się w grupach synonimów.

Zasoby


Ostatnia aktualizacja: 2026-03-04
Testowano z: GroupDocs.Search 25.4 for Java
Autor: GroupDocs