Budowanie skalowalnej sieci wyszukiwania – indeksowanie dokumentów przy użyciu GroupDocs.Java

W tym samouczku dowiesz się jak dodać dokumenty do indeksu i zbudować skalowalną sieć wyszukiwania przy użyciu GroupDocs.Search dla Javy. Przeprowadzimy Cię przez konfigurowanie sieci wyszukiwania, wdrażanie węzłów i obsługę zdarzeń, aby Twoja aplikacja mogła efektywnie przetwarzać duże kolekcje dokumentów na wielu serwerach.

Szybkie odpowiedzi

  • Co oznacza „dodawanie dokumentów do indeksu”? Oznacza to wstawianie plików do indeksu przeszukiwalnego, aby można je było szybko zapytać.
  • Która biblioteka zapewnia tę funkcjonalność? GroupDocs.Search dla Javy.
  • Czy potrzebna jest licencja? Dostępna jest tymczasowa licencja próbna; licencja komercyjna jest wymagana w środowisku produkcyjnym.
  • Czy mogę skalować poziomo? Tak — poprzez wdrażanie wielu instancji SearchNetworkNode.
  • Jaka wersja Javy jest wymagana? JDK 8 lub wyższa.

Co to jest dodawanie dokumentów do indeksu?

Wczytaj swoje pliki źródłowe (PDF, DOCX, PPTX itp.) do silnika GroupDocs.Search, który wyodrębnia tekst, tworzy tabele częstotliwości terminów i zapisuje je w pliku indeksu. Powstały indeks umożliwia zapytania słów kluczowych w czasie poniżej sekundy, nawet w kolekcjach liczących setki stron.

Dlaczego używać GroupDocs.Search dla Javy w środowisku sieciowym?

Rozdziel obciążenia indeksowania i wyszukiwania na kilka węzłów, zmniejsz opóźnienie zapytań przetwarzając blisko źródła danych oraz dodawaj lub usuwaj węzły bez przestoju. Ta architektura pozwala wyszukiwać na wielu serwerach, zachowując stałą wydajność.

Wymagania wstępne

  • Java Development Kit (JDK) 8+ zainstalowany.
  • Maven do zarządzania zależnościami.
  • Podstawowa znajomość Javy i struktury projektu Maven.

Wymagane biblioteki, wersje i zależności

Aby wdrożyć GroupDocs.Search dla Javy, dołącz następujące elementy do swojego projektu Maven:

<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>

Alternatywnie, pobierz najnowszą wersję z GroupDocs.Search for Java releases. Możesz również znaleźć wydania pod adresem GroupDocs Search Java releases.

Wymagania dotyczące konfiguracji środowiska

  • JDK 8 lub wyższy zainstalowany w systemie.
  • Maven zainstalowany i skonfigurowany, jeśli używasz projektu Maven.

Wymagania wiedzy

  • Podstawowa znajomość programowania w Javie.
  • Znajomość zarządzania zależnościami w Maven.

Konfiguracja GroupDocs.Search dla Javy

  1. Konfiguracja Maven: Dodaj repozytorium i zależność, jak pokazano powyżej, w pliku pom.xml.
  2. Bezpośrednie pobranie: Alternatywnie, pobierz bibliotekę z GroupDocs Search Java releases.

Uzyskanie licencji

  • Uzyskaj bezpłatną wersję próbną lub tymczasową licencję, odwiedzając GroupDocs website.
  • Aby uzyskać pełny dostęp i wsparcie, rozważ zakup licencji komercyjnej.

Podstawowa inicjalizacja

Zainicjalizuj GroupDocs.Search w swojej aplikacji Java:

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Initialize an index
        Index index = new Index("path/to/index/directory");

        // Add documents to the index
        index.add("path/to/documents");
        
        System.out.println("GroupDocs.Search setup complete.");
    }
}

Jak dodać dokumenty do indeksu w sieci wyszukiwania?

Wczytaj swoje dokumenty przez dowolny węzeł w sieci; framework automatycznie rozdziela obciążenie indeksowania, równoważy obciążenie i aktualizuje współdzielony indeks w czasie rzeczywistym. Każdy węzeł przetwarza przydzielone mu pliki, wyodrębnia tekst i zapisuje przyrostowe zmiany w centralnym indeksie, zapewniając, że nowo dodana zawartość staje się przeszukiwalna na wszystkich węzłach niemal natychmiast.

Funkcja 1: Konfiguracja sieci wyszukiwania

Przegląd

Konfigurowanie sieci wyszukiwania polega na ustawieniu węzłów do efektywnego zarządzania i rozdzielania zadań wyszukiwania.

Krok 1: Zdefiniuj ścieżkę bazową i port

Klasa SearchNetworkNode reprezentuje pojedynczy węzeł uczestniczący w rozproszonym indeksie.

String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/SearchNetworkNodeEvents/";
int basePort = 49140; // Change if necessary due to busy port issues
Krok 2: Skonfiguruj sieć

NetworkConfiguration przechowuje wspólne ustawienia (ścieżka bazowa, porty, współczynnik replikacji), które każdy węzeł odczytuje przy uruchomieniu.

import com.groupdocs.search.scaling.*;
import com.groupdocs.search.scaling.configuring.*;

Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);

Funkcja 2: Wdrożenie węzłów sieci wyszukiwania

Przegląd

Wdroż węzły, aby rozdzielić i obsługiwać operacje wyszukiwania w całej sieci.

Krok 1: Wdroż węzły przy użyciu konfiguracji

Instancje SearchNetworkNode są uruchamiane z tym samym plikiem konfiguracyjnym, co pozwala im wykrywać się nawzajem w określonym zakresie portów bazowych.

import com.groupdocs.search.scaling.*;

SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

Funkcja 3: Subskrypcja zdarzeń węzła

Przegląd

Subskrypcja zdarzeń węzła pozwala monitorować i reagować na różne akcje w sieci wyszukiwania.

Krok 1: Zdefiniuj metodę subskrypcji

NodeEventListener jest interfejsem, który implementujesz, aby otrzymywać wywołania zwrotne dotyczące postępu indeksowania, błędów i zmian stanu zdrowia węzła.

import com.groupdocs.search.events.*;
import com.groupdocs.search.scaling.events.*;

public static void subscribe(SearchNetworkNode node) {
    // Subscribe to IndexingCompleted event
    node.getEvents().IndexingCompleted.add(new EventHandler() {
        @Override
        public void invoke(Object s, EventArgs e) {
            System.out.println("Indexing completed.");
        }
    });

    // Additional events can be subscribed similarly...
}
Krok 2: Użyj metody subskrypcji

Zarejestruj swojego nasłuchiwacza w każdym węźle, aby otrzymywać informacje zwrotne w czasie rzeczywistym podczas dużych operacji wsadowych.

SearchNetworkNode masterNode = nodes[0];
subscribe(masterNode);

Zamykanie węzłów

Zawsze zamykaj węzły w sposób kontrolowany, aby opróżnić oczekujące zapisy i zwolnić gniazda sieciowe.

for (SearchNetworkNode node : nodes) {
    node.close();
}

Praktyczne zastosowania

  1. Rozwiązania wyszukiwania korporacyjnego – Zaimplementuj sieć wyszukiwania, aby obsługiwać wyszukiwanie dokumentów na dużą skalę na wielu serwerach.
  2. Platformy e‑commerce – Zwiększ możliwości wyszukiwania produktów, rozdzielając zadania indeksowania na kilka węzłów.
  3. Systemy zarządzania treścią (CMS) – Popraw wydajność pobierania i aktualizacji treści w środowiskach CMS.

Rozważania dotyczące wydajności

  • Optymalizuj wdrożenie węzłów w oparciu o zasoby systemu.
  • Regularnie monitoruj zużycie pamięci, aby zapobiegać wyciekom, szczególnie przy obsłudze dużych zestawów danych.
  • Wykorzystaj ustawienia konfiguracyjne do precyzyjnego dostrajania operacji indeksowania i wyszukiwania w celu zwiększenia efektywności.

Typowe problemy i rozwiązania

ProblemTypowa przyczynaRozwiązanie
Konflikty portówbasePort już używanyZmień basePort na dostępny numer
Węzeł nieosiągalnyZapora lub reguły siecioweOtwórz wymagane porty i zweryfikuj łączność
Indeks nie aktualizuje sięNieprawidłowa ścieżka do dokumentuSprawdź, czy basePath wskazuje prawidłowy katalog
Wysokie zużycie pamięciIndeksowanie dużych partiiIndeksuj dokumenty w mniejszych partiach lub zwiększ rozmiar sterty

Najczęściej zadawane pytania

Q: Jak radzić sobie z konfliktami portów podczas wdrażania węzłów?
A: Zmień zmienną basePort w kodzie konfiguracji na dostępny port.

Q: Czy GroupDocs.Search może być używany do indeksowania w czasie rzeczywistym?
A: Tak, obsługuje indeksowanie w czasie rzeczywistym przy odpowiednich konfiguracjach.

Q: Jakie są typowe problemy podczas wdrażania węzłów?
A: Łączność sieciowa i nieprawidłowe ustawienia ścieżek są częstymi przyczynami. Upewnij się, że wszystkie ścieżki i porty są poprawnie skonfigurowane.

Q: Czy można dodać dokumenty do indeksu po uruchomieniu sieci?
A: Oczywiście. Możesz wywołać index.add(...) na dowolnym węźle, a sieć automatycznie rozdzieli nowe obciążenie.

Q: Czy potrzebna jest licencja do testów deweloperskich?
A: Tymczasowa licencja próbna wystarczy do testów; licencja komercyjna jest wymagana w środowisku produkcyjnym.

Zasoby

Korzystając z tego przewodnika, możesz skutecznie dodawać dokumenty do indeksu i zarządzać solidną, budować skalowalną sieć wyszukiwania przy użyciu GroupDocs.Search dla Javy. Szczęśliwego kodowania!


Ostatnia aktualizacja: 2026-05-22
Testowano z: GroupDocs.Search 25.4 for Java
Autor: GroupDocs

Powiązane samouczki