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
- Konfiguracja Maven: Dodaj repozytorium i zależność, jak pokazano powyżej, w pliku
pom.xml. - 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
- Rozwiązania wyszukiwania korporacyjnego – Zaimplementuj sieć wyszukiwania, aby obsługiwać wyszukiwanie dokumentów na dużą skalę na wielu serwerach.
- Platformy e‑commerce – Zwiększ możliwości wyszukiwania produktów, rozdzielając zadania indeksowania na kilka węzłów.
- 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
| Problem | Typowa przyczyna | Rozwiązanie |
|---|---|---|
| Konflikty portów | basePort już używany | Zmień basePort na dostępny numer |
| Węzeł nieosiągalny | Zapora lub reguły sieciowe | Otwórz wymagane porty i zweryfikuj łączność |
| Indeks nie aktualizuje się | Nieprawidłowa ścieżka do dokumentu | Sprawdź, czy basePath wskazuje prawidłowy katalog |
| Wysokie zużycie pamięci | Indeksowanie dużych partii | Indeksuj 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
- Dokumentacja: GroupDocs Search Java Docs
- Referencja API: GroupDocs API Reference
- Pobranie: Latest Release
- GitHub: GroupDocs.Search GitHub Repository
- Bezpłatne wsparcie: GroupDocs Forum
- Tymczasowa licencja: Obtain a Temporary License
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