Konfiguracja wyszukiwania rozproszonego z GroupDocs.Search Java Network
W dzisiejszym świecie napędzanym danymi, configure distributed search jest niezbędne do obsługi ogromnych zbiorów dokumentów przy zachowaniu niskich czasów odpowiedzi. Ten samouczek przeprowadzi Cię przez konfigurację solidnej sieci GroupDocs.Search for Java, pokazując jak wdrożyć wyszukiwanie w wielu węzłach, dodawać dokumenty do indeksu oraz konfigurować ustawienia TCP dla niezawodnej komunikacji. Po zakończeniu będziesz mieć skalowalne rozwiązanie wyszukiwania gotowe do produkcji oraz jasne zrozumienie, dlaczego ta architektura przewyższa konfigurację jednowęzłową.
Szybkie odpowiedzi
- Co to jest configure distributed search? Jest to proces łączenia kilku niezależnych węzłów wyszukiwania, tak aby wspólnie indeksowały i odpowiadały na zapytania, zapewniając wyższą przepustowość i tolerancję błędów.
- Ile węzłów jest zalecane? Zazwyczaj 3‑5 węzłów zapewnia dobrą równowagę między wydajnością a tolerancją błędów dla większości obciążeń przedsiębiorstw.
- Czy potrzebna jest licencja? Tak – wymagana jest tymczasowa lub pełna licencja do użycia GroupDocs.Search w środowisku produkcyjnym.
- Jakie porty powinienem używać? Wybierz porty wolne na swoich serwerach; w przykładzie użyto 49136‑49139, ale dowolny otwarty zakres zadziała.
- Czy mogę dodawać nowe dokumenty po wdrożeniu? Oczywiście – możesz add documents to index w dowolnym momencie bez ponownego uruchamiania sieci.
Co to jest configure distributed search?
Konfiguracja architektury wyszukiwania rozproszonego oznacza łączenie kilku niezależnych węzłów wyszukiwania, aby wspólnie dzieliły pracę indeksowania i odpowiadały na zapytania. Redukuje to obciążenie pojedynczej maszyny, zwiększa zarówno przepustowość, jak i niezawodność oraz zapewnia wbudowaną redundancję dla tolerancji błędów.
Dlaczego używać GroupDocs.Search for Java?
GroupDocs.Search for Java zapewnia high‑performance indexing (do 1 GB/s na nowoczesnym sprzęcie) oraz scalable architecture, które obsługuje klastry 10+ węzłów. Natywnie rozumie 50+ formatów dokumentów — w tym PDF, DOCX, XLSX, PPTX i pliki e‑mail — dzięki czemu możesz indeksować praktycznie dowolną treść biznesową bez dodatkowych konwerterów. Wbudowana klasa TcpSettings pozwala precyzyjnie dostroić opóźnienia, przepustowość i interwały keep‑alive, zapewniając niezawodną komunikację między węzłami nawet poza granicami centrów danych. TcpSettings konfiguruje niskopoziomowe parametry komunikacji TCP między węzłami.
Wymagania wstępne
Wymagane biblioteki i zależności
Będziesz potrzebować GroupDocs.Search for Java w wersji 25.4 lub nowszej. Upewnij się, że w środowisku programistycznym jest zainstalowany Java.
Wymagania dotyczące konfiguracji środowiska
- Zestaw Java Development Kit (JDK) 11 lub nowszy.
- IDE, takie jak IntelliJ IDEA lub Eclipse, dla wygodnego zarządzania projektem.
Wymagania wiedzy wstępnej
Podstawowe umiejętności programowania w Javie oraz ogólne zrozumienie konfiguracji sieci pomogą Ci płynnie przejść przez kolejne kroki.
Konfiguracja GroupDocs.Search for Java
Aby rozpocząć, dodaj GroupDocs.Search for Java do swojego projektu. Możesz to zrobić za pomocą Maven lub pobierając bibliotekę bezpośrednio.
Konfiguracja Maven
Add the following repository and dependency configuration in your pom.xml file:
<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>
Pobranie bezpośrednie
Alternatywnie, pobierz najnowszą wersję z GroupDocs.Search for Java releases.
Uzyskanie licencji
Aby w pełni wykorzystać GroupDocs.Search, możesz uzyskać tymczasową licencję lub ją zakupić. Odwiedź GroupDocs’s licensing page po więcej informacji, jak uzyskać bezpłatną wersję próbną lub pełną licencję. Możesz również użyć GroupDocs licensing page w tym samym celu.
Podstawowa inicjalizacja i konfiguracja
Let’s initialize GroupDocs.Search in your Java application:
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Create an index in the specified folder
Index index = new Index("YOUR_INDEX_DIRECTORY");
// Add documents to the index
index.add("YOUR_DOCUMENT_DIRECTORY");
}
}
Przewodnik implementacji
W tej sekcji przeprowadzimy Cię przez konfigurację i wdrożenie sieci wyszukiwania przy użyciu GroupDocs.Search for Java.
Jak skonfigurować distributed search z GroupDocs.Search?
Wczytaj konfigurację sieci, określ ścieżki bazowe i ustaw parametry TCP w kilku linijkach kodu. Ten bezpośredni wzorzec odpowiedzi pokazuje niezbędne kroki przed szczegółowym wyjaśnieniem.
Najpierw utwórz obiekt SearchNetworkConfig, określ współdzielony katalog bazowy i przypisz odrębny port TCP dla każdego węzła. SearchNetworkConfig definiuje ustawienia klastra wyszukiwania rozproszonego, takie jak katalog bazowy i porty węzłów. Następnie zainicjalizuj TcpSettings — klasę kontrolującą limit czasu gniazda, rozmiar bufora i zachowanie keep‑alive. Na koniec wywołaj NetworkManager.deploy(config), aby uruchomić klaster. NetworkManager obsługuje wdrażanie i zarządzanie węzłami wyszukiwania w klastrze.
Konfiguracja sieci
The TcpSettings class is the configuration hub for all TCP‑level communication between nodes. It lets you set connection timeout, read/write buffer sizes, and whether to use Nagle’s algorithm.
Configuration configuration = ConfiguringSearchNetwork.configure("YOUR_DOCUMENT_DIRECTORY", 49136);
Wdrażanie węzłów
Deploy each node by providing its unique identifier and the previously defined configuration. The deployment routine automatically registers the node with the cluster, opens the listening socket, and starts background indexing threads.
public static SearchNetworkNode[] deploy(String basePath, int basePort, Configuration configuration) {
// Define timeouts for sending and receiving data over the network.
int sendTimeout = 3000;
int receiveTimeout = 3000;
// Create and start three nodes that can run on separate servers or together.
SearchNetworkNode node1 = new SearchNetworkNode(
1,
basePath + "Node1",
new TcpSettings(basePort + 1, sendTimeout, receiveTimeout)
);
node1.start();
SearchNetworkNode node2 = new SearchNetworkNode(
2,
basePath + "Node2",
new TcpSettings(basePort + 2, sendTimeout, receiveTimeout)
);
node2.start();
SearchNetworkNode node3 = new SearchNetworkNode(
3,
basePath + "Node3",
new TcpSettings(basePort + 3, sendTimeout, receiveTimeout)
);
node3.start();
// Create and configure the main configuration node.
SearchNetworkNode node0 = new SearchNetworkNode(
0,
basePath + "Node0",
new TcpSettings(basePort, sendTimeout, receiveTimeout),
new ConsoleLogger(),
configuration
);
// Add an event handler to notify when the configuration is complete.
node0.getEvents().ConfigurationCompleted.add(new EventHandler() {
@Override
public void invoke(Object s, EventArgs e) {
// Event handling logic here (e.g., logging)
}
});
// Configure all nodes in the network using the main configuration node.
node0.configureAllNodes();
// Start the search network by launching all configured nodes.
node0.start();
// Return an array of all deployed nodes.
return new SearchNetworkNode[] {node0, node1, node2, node3};
}
Typowe problemy i rozwiązania
- Directory Access Errors – Upewnij się, że katalog bazowy każdego węzła istnieje i proces Java ma uprawnienia do odczytu/zapisu.
- Port Conflicts – Zweryfikuj, że wybrane porty (np. 49136‑49139) nie są używane przez inne usługi; możesz uruchomić
netstat -an, aby sprawdzić. - Timeouts on Slow Networks – Zwiększ
TcpSettings.setConnectionTimeout(), jeśli doświadczasz częstych rozłączeń w środowiskach o wysokim opóźnieniu. - Index Corruption – Regularnie twórz kopie zapasowe folderu indeksu i włącz
NetworkManager.enableAutoRecovery(), aby automatycznie odbudować uszkodzone fragmenty.
Praktyczne zastosowania
Wdrożenie sieci wyszukiwania rozproszonego może być korzystne w różnych scenariuszach:
- Large‑Scale Enterprise Systems – Indeksuj miliony umów, polityk i raportów, utrzymując odpowiedzi na zapytania w czasie poniżej sekundy.
- Content Management Platforms – Obsługuj tysiące jednoczesnych użytkowników wyszukujących w zasobach multimedialnych bez wąskich gardeł.
- E‑commerce Websites – Przyspiesz wyszukiwanie produktów i nawigację fasetową w katalogach zawierających miliony SKU.
Rozważania dotyczące wydajności
Aby utrzymać środowisko configure distributed search działające wydajnie:
- Index Size Management – GroupDocs.Search może obsługiwać indeksy przekraczające 100 GB; jednak monitoruj operacje dyskowe i rozważ podział dużych kolekcji na wiele węzłów.
- Resource Tuning – Zastosuj flagi tuningu pamięci Java (
-Xmx8g -Xms4g) w zależności od obciążenia oraz dostosujTcpSettings.setReadBufferSize()dla sieci o wysokiej przepustowości. - Health Monitoring – Użyj wbudowanego
NetworkHealthMonitor, aby śledzić CPU, pamięć i opóźnienia sieciowe na węzeł, oraz ustaw alerty dla zdefiniowanych progów.
Zakończenie
Postępując zgodnie z tym samouczkiem, nauczyłeś się configure distributed search i wdrożyłeś skalowalną sieć GroupDocs.Search Java. To rozwiązanie może znacząco poprawić szybkość i niezawodność funkcji wyszukiwania w Twojej aplikacji, szczególnie przy obsłudze dużych, heterogenicznych zbiorów dokumentów.
Kolejne kroki
Zbadaj zaawansowane możliwości, takie jak własne analizatory, obsługa synonimów i indeksowanie w czasie rzeczywistym, aby jeszcze bardziej udoskonalić doświadczenie wyszukiwania. Możesz także zintegrować sieć z warstwą API RESTful, aby udostępnić funkcje wyszukiwania klientom zewnętrznym.
Wezwanie do działania
Rozpocznij wdrażanie tego solidnego rozwiązania w swoich projektach już dziś i przekonaj się o przyspieszeniu wydajności na własne oczy!
Najczęściej zadawane pytania
Q: Co to jest GroupDocs.Search for Java?
A: GroupDocs.Search for Java to wysokowydajna biblioteka, która indeksuje i przeszukuje tekst w ponad 50 formatach dokumentów, zapewniając szybkie, skalowalne wyszukiwanie pełnotekstowe dla aplikacji Java.
Q: Jak uzyskać tymczasową licencję dla GroupDocs.Search?
A: Odwiedź GroupDocs’s licensing page, aby poprosić o bezpłatną wersję próbną lub zakupić pełną licencję do użytku produkcyjnego.
Q: Czy mogę dodawać nowe dokumenty po wdrożeniu sieci?
A: Tak, możesz add documents to index w dowolnym momencie, używając metody IndexManager.addDocument(); zmiany są automatycznie propagowane w całym klastrze. IndexManager.addDocument() dodaje nowy dokument do indeksu i propaguje go w sieci.
Q: Jakie są typowe pułapki przy konfigurowaniu węzłów?
A: Typowe problemy to niezgodne ścieżki bazowe, konflikty portów i niewystarczające uprawnienia systemu plików. Sprawdź ponownie konfigurację każdego węzła i upewnij się, że wszystkie katalogi są dostępne.
Q: Czy sieć obsługuje indeksowanie w czasie rzeczywistym?
A: Absolutnie. GroupDocs.Search oferuje API indeksowania w czasie rzeczywistym, które natychmiast udostępnia nowo dodane dokumenty do wyszukiwania we wszystkich węzłach bez przestojów.
Ostatnia aktualizacja: 2026-06-27
Testowano z: GroupDocs.Search 25.4 for Java
Autor: GroupDocs