GroupDocs Search Network’ı Java için Nasıl Yapılandırılır

Bugünün hızlı‑tempolu dijital ortamında, configure groupdocs search network becerileri, milyonlarca belgeyi hızlı ve güvenilir bir şekilde araması gereken her organizasyon için hayati öneme sahiptir. İyi yapılandırılmış bir arama ağı, indeksleme ve sorgu iş yüklerini birden fazla JVM düğümüne dağıtarak yanıt sürelerini düşük tutar ve yüksek kullanılabilirlik sağlar. Bu öğretici, Maven kurulumu ve lisans aktivasyonundan düğüm dağıtımına, olay aboneliğine, belge indekslemeye ve hatta görüntü‑tabanlı aramaya kadar her adımı size gösterir— böylece Java’da üretim‑hazır bir GroupDocs.Search ağı oluşturabilirsiniz.

Hızlı Yanıtlar

  • Search network’ün temel amacı nedir? İndeksleme ve sorgu yükünü daha iyi ölçeklenebilirlik ve güvenilirlik için birden fazla düğüm arasında dağıtmak.
  • GroupDocs.Search varsayılan olarak hangi portu kullanır? Örnekte 49120 portu kullanılıyor, ancak istediğiniz boş portu seçebilirsiniz.
  • Düğüm ekleyebilir veya kaldırabilir miyim, kesinti olmadan? Evet—düğümler dinamik olarak dağıtılabilir veya kaldırılabilir.
  • Üretim için lisansa ihtiyacım var mı? Üretim kullanımında tam lisans gereklidir; değerlendirme için deneme lisansları mevcuttur.
  • Görüntü arama kutudan çıkar çıkmaz destekleniyor mu? Evet—GroupDocs.Search yerleşik görüntü hash karşılaştırması sağlar.

Arama Ağı Nedir?

Bir SearchNetworkNode, paylaşılan indeksin bir kopyasını barındıran ve arama isteklerini işleyen kümedeki bireysel düğümdür. Bir search network, indeksleme bilgilerini paylaşan ve sorgulara birlikte yanıt veren birbirine bağlı SearchNetworkNode örneklerinin bir koleksiyonudur. Bu mimari, büyük belge koleksiyonlarını düşük yanıt süreleriyle yönetmenizi sağlar ve bir düğüm çevrim dışı kaldığında otomatik failover (hata geçişi) olanağı sunar.

Neden Java için GroupDocs.Search Kullanmalısınız?

Java uygulamanızı, dakikalar içinde configure groupdocs search network yapabilen, yatay olarak ölçeklenebilen ve PDF, DOCX, XLSX, PPTX ve yaygın görüntü türleri dahil olmak üzere 30’dan fazla dosya formatını destekleyen bir arama motoru ile donatın. Performans testleri, üç düğümlü bir kümenin standart sunucu donanımında 30 dakikadan kısa sürede 500.000 belgeyi indeksleyebileceğini, sorgu gecikmesinin ise yoğun eşzamanlı yük altında bile 200 ms’nin altında kaldığını gösteriyor.

Ön Koşullar

  • JDK 8+ her düğümün çalışacağı her makineye kurulu olmalıdır.
  • IntelliJ IDEA veya Eclipse gibi bir IDE, proje yönetimini kolaylaştırır.
  • Bağımlılık çözümü için Maven.
  • Java ağ iletişimi (TCP portları, güvenlik duvarları) ve çoklu iş parçacığı kavramları hakkında temel bilgi.

Gerekli Kütüphaneler ve Bağımlılıklar

GroupDocs deposunu ve bağımlılığı pom.xml dosyanıza ekleyin:

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

Alternatif olarak, en son sürümü GroupDocs.Search for Java releases adresinden indirebilirsiniz.

GroupDocs.Search for Java’ı Kurma

Maven ile Kurulum

Yukarıdaki Maven kod parçacığı, kütüphaneyi projenize otomatik olarak çeker.

Lisans Edinme

  • Free Trial – kredi kartı gerektirmeden temel özellikleri keşfedin.
  • Temporary License – iç pilotlar için uzatılmış test süresi.
  • Full License – üretim‑hazır, sınırsız kullanım ve öncelikli destek.

Temel Başlatma ve Kurulum

SearchNetworkDeployment sınıfı, arama kümesinin oluşturulması ve yönetilmesini, düğüm yaşam döngülerini ve paylaşılan kaynakları düzenler. Herhangi bir düğümle etkileşime geçmeden önce bir SearchNetworkDeployment nesnesi oluşturmalı ve onu ortak bir indeks klasörüne işaret etmelisiniz. Aşağıdaki kod bloğu (orijinal öğreticiden korunmuş) minimum başlatma adımını gösterir:

import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Create an instance of Index with the path to store index data.
        String indexPath = "path/to/index";
        Index index = new Index(indexPath);
        
        System.out.println("GroupDocs.Search initialized successfully.");
    }
}

Uygulama Kılavuzu

Şimdi her temel göreve derinlemesine bakacağız, orijinal kod yer tutucularının önünde net, adım‑adım açıklamalar sunacağız.

Arama Ağı’nda Düğümleri Nasıl Dağıtırsınız

Birden fazla düğüm dağıtmak, iş yükünü yayar ve hata toleransını artırır. Bir SearchNetworkNode, arama kümesine katılan, indeksleme ve sorgu isteklerini işleyen bireysel bir JVM örneğidir. Ardışık portlarda birkaç düğüm başlatarak, her düğümün istemci çağrılarını hizmet verebildiği ve ortak indeksi paylaştığı dayanıklı bir ağ oluşturursunuz.

public class SearchNetworkDeployment {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Change if necessary.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);

        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
        
        System.out.println("Deployed " + nodes.length + " search network nodes.");
    }
}

Olaylara Nasıl Abone Olunur

Event subscription, düğüm sağlığı, indeksleme ilerlemesi ve hatalar hakkında canlı bilgi sağlar. SearchNetworkEvents sınıfı, indeksleme tamamlanması, düğüm hataları veya özel bildirimler gibi önemli eylemler için tetiklenen bir dizi geri çağırma sunar. Ana veya işçi düğümlerde dinleyicileri kaydetmek, gerçek‑zamanlı izleme ve ağın sorunsuz çalışmasını sağlamak için otomatik yanıtlar verir.

public class NodeEventSubscription {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Adjust if needed.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

        SearchNetworkEvents.subscribe(nodes[0]);
        
        System.out.println("Subscribed to events for the master node.");
    }
}

Belgeleri Nasıl İndekslersiniz

Verimli indeksleme, hızlı arama sonuçlarının temelidir. Dizinleri ana düğüme eklediğinizde, motor her dosyayı tarar, aranabilir içeriği çıkarır ve ortak indeks yapısına kaydeder. Bu süreç artımlı olarak çalışabilir, yalnızca değişen dosyaları günceller; bu da I/O yükünü azaltır ve sorguların her zaman en son belge sürümlerini yansıtmasını sağlar.

public class DocumentIndexing {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Change if there is a conflict.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

        IndexingDocuments.addDirectories(nodes[0], "YOUR_DOCUMENT_DIRECTORY");
        
        System.out.println("Added directories to master node's index.");
    }
}

Görüntü Araması Nasıl Yapılır

GroupDocs.Search, görüntü hash karşılaştırmasını destekler ve görsel olarak benzer varlıkları bulmanızı sağlar. SearchImage sınıfı bir görüntü dosyasını kapsar ve indeks içinde saklanan hash’lerle eşleşebilen algısal bir hash hesaplar. Maksimum hash farkı belirleyerek görsel benzerlik toleransını kontrol eder, böylece depodaki yinelenen veya ilgili görüntüleri güvenilir bir şekilde keşfedebilirsiniz.

public class ImageSearch {
    public static void run() {
        String basePath = "YOUR_DOCUMENT_DIRECTORY";
        int basePort = 49120; // Modify if needed.
        Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
        SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);

        SearchImage searchImage = SearchImage.create("YOUR_DOCUMENT_DIRECTORY/ic_arrow_back_black_18dp.png");

        imageSearch(nodes[0], searchImage, 8);
    }
}

Ağ Portlarını Nasıl Yapılandırırsınız

Ortamınız zaten 49120 portunu kullanıyorsa, bunu herhangi bir boş TCP portuna değiştirebilirsiniz. basePort parametresi, küme için başlangıç port numarasını belirler ve sonraki her düğüm bu değeri otomatik olarak artırır. Seçilen portun güvenlik duvarınızda açık, başka hizmetler tarafından kullanılmıyor ve tüm düğümlerde tutarlı bir şekilde yapılandırılmış olduğundan emin olun; böylece sorunsuz iletişim sağlanır.

int customPort = 50000; // Example of a custom port.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, customPort);

Yaygın Sorunlar ve Sorun Giderme

BelirtiMuhtemel NedenÇözüm
Düğümler başlatılamıyorPort çakışmasıFarklı bir basePort seçin ve güvenlik duvarı kurallarını güncelleyin.
İndeksleme yavaşYetersiz I/O bant genişliğiSSD depolama kullanın ve artımlı indekslemeyi etkinleştirin.
Olay aboneliği tetiklenmiyorOlay işleyici kaydı eksikSearchNetworkEvents.subscribe(node)‘un herhangi bir indekslemeye başlamadan önce çağrıldığından emin olun.
Görüntü araması sonuç vermiyorHash farkı çok düşükİzin verilen hash farkını artırın (ör. 4’ten 8’e).

Sıkça Sorulan Sorular

Q: GroupDocs.Search ağında indeksleme performansını nasıl optimize edebilirim?
A: Artımlı indeksleme kullanın, indeksi hızlı SSD’lerde saklayın ve JVM için yeterli yığın belleği ayırın.

Q: Tüm arama ağını yeniden başlatmadan düğüm ekleyebilir veya kaldırabilir miyim?
A: Evet—düğümler dinamik olarak dağıtılabilir veya kaldırılabilir. Bir düğüm ekledikten sonra, küme görünümünü yenilemek için SearchNetworkDeployment.deploy metodunu tekrar çağırın.

Q: Olay aboneliği ağ yönetimini nasıl iyileştirir?
A: Abone olunan olaylar, düğüm durum değişiklikleri, indeksleme ilerlemesi ve hatalar için gerçek‑zamanlı uyarılar sağlar, böylece proaktif sorun giderme mümkün olur.

Q: Farklı belge formatlarını aynı anda aramak mümkün mü?
A: Kesinlikle. GroupDocs.Search, tek bir sorguda PDF’ler, Word, Excel, PowerPoint, görüntüler ve birçok diğer formatı destekler.

Q: GroupDocs.Search ağındaki veri ne kadar güvenli?
A: Güvenlik altyapınıza bağlıdır. Düğüm iletişimi için SSL/TLS uygulayın, ağ erişimini kısıtlayın ve veri koruma için en iyi uygulamaları izleyin.


Son Güncelleme: 2026-06-27
Test Edilen Versiyon: GroupDocs.Search 25.4 for Java
Yazar: GroupDocs

İlgili Öğreticiler