GroupDocs.Search Kullanarak Java’da Arama Sonuçlarını Vurgulama
Eğer sonsuz belgeler arasında manuel olarak gezinmekten sıkıldıysanız, highlight search results java ihtiyacınız olanı hızlı ve güvenilir bir şekilde ortaya çıkarır. Bu öğreticide dağıtık bir arama ağı yapılandırmayı, dosyalarınızı indekslemeyi, sorgular çalıştırmayı ve sonunda eşleşmeleri doğrudan belgeler içinde vurgulamayı adım adım göstereceğiz. Sonunda, birden çok düğümde ölçeklenebilen ve ilgili terimleri anında öne çıkaran üretim‑hazır bir çözümünüz olacak.
Hızlı Yanıtlar
- “highlight search results java” ne anlama geliyor? Java kütüphaneleri (ör. GroupDocs.Search) kullanılırken bulunan anahtar kelimeleri programlı olarak işaretlemeyi ifade eder.
- Aynı belgede birden fazla terimi vurgulayabilir miyim? Evet –
HighlightOptionskullanarak her eşleşme öncesi/sonrası gösterilecek terim sayısını tanımlayabilirsiniz. - Bu örneği çalıştırmak için lisansa ihtiyacım var mı? Test için ücretsiz deneme veya geçici lisans yeterlidir; üretim için tam lisans gereklidir.
- Hangi Java sürümü gerekiyor? Java 8 veya üzeri.
- Bu yaklaşım büyük belge koleksiyonları için uygun mu? Kesinlikle – arama ağı indeksleme ve sorgu yükünü düğümler arasında dağıtır.
Highlight Search Results Java Nedir?
highlight search results java, bir arama sorgusunu alıp belgelerinizde eşleşen parçaları bulma ve bu parçaları görsel olarak vurgulama (ör. işaretleyicilerle çevreleme veya vurgulanmış snippet’ler döndürme) sürecidir. Bu sayede son kullanıcılar, tüm dosyayı açmadan her eşleşmenin bağlamını kolayca görebilir.
Vurgulama İçin Neden GroupDocs.Search Kullanılmalı?
GroupDocs.Search, çok sayıda dosya formatını destekleyen, dağıtık indeksleme ve yerleşik fragment vurgulayıcıları sunan hazır, yüksek‑performanslı bir motor sağlar. Özel ayrıştırıcılar yazma veya düşük seviyeli arama altyapısını yönetme ihtiyacını ortadan kaldırır, böylece sorunsuz bir kullanıcı deneyimi sunmaya odaklanabilirsiniz.
Önkoşullar
- Java Development Kit (JDK) 8+ –
java -versionkomutunun 1.8 veya üzeri bir sürüm rapor ettiğinden emin olun. - Maven – bağımlılık yönetimi için.
- GroupDocs.Search for Java 25.4 – bu kılavuz boyunca kullanılan sürüm.
- IntelliJ IDEA veya Eclipse gibi bir IDE (isteğe bağlı ancak önerilir).
- Java ve ağ kavramları hakkında temel bilgi.
GroupDocs.Search for Java’ı Kurma
Kütüphaneyi projenize Maven aracılığıyla ya da JAR dosyasını doğrudan indirerek ekleyebilirsiniz.
Maven Kurulumu
pom.xml dosyanıza depo ve bağımlılığı 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>
Doğrudan İndirme
Alternatif olarak, en yeni JAR dosyasını GroupDocs.Search for Java releases adresinden indirin.
Lisans Edinme Adımları
- Free Trial: Temel özellikleri keşfetmek için deneme sürümüyle başlayın.
- Temporary License: bu sayfadan uzatılmış test lisansı alın.
- Purchase: Üretim dağıtımları için tam lisans temin edin.
Temel Başlatma ve Kurulum
Arama indeksinin saklanacağı klasöre işaret eden bir Index örneği oluşturun:
import com.groupdocs.search.*;
public class SearchSetup {
public static void main(String[] args) {
// Create an instance of Index
Index index = new Index("path/to/index/directory");
System.out.println("GroupDocs.Search initialized successfully.");
}
}
Uygulama Kılavuzu
Dağıtık Bir Ağda Highlight Search Results Java Nasıl Yapılır
Arama Ağını Yapılandırma
Öncelikle belgelerinizin nerede bulunduğunu ve ağın hangi portu kullanacağını tanımlayın.
import com.groupdocs.search.common.*;
import com.groupdocs.search.scaling.configuring.*;
String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/HighlightingResultsInNetwork/";
int basePort = 49116; // Change if port is busy
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
basePath– indekslemek istediğiniz dosyaları içeren kök klasör.basePort– düğüm iletişimi için TCP portu; kullanılmayan bir port seçin.
Arama Ağı Düğümlerini Dağıtma
Yapılandırmaya göre bir veya daha fazla düğüm dağıtın. İlk düğüm master (ana) olur.
import com.groupdocs.search.scaling.*;
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
SearchNetworkNode masterNode = nodes[0];
nodes– çalışan tüm düğümlerin bir dizisi.masterNode– indeksleme ve sorgu dağıtımını koordine eder.
Arama Ağı Düğüm Olaylarına Abone Olma
Master düğüme dinleyiciler ekleyerek gerçek‑zamanlı bildirimler alın (ör. indeksleme tamamlandığında).
import com.groupdocs.search.scaling.events.*;
SearchNetworkNodeEvents.subscribe(masterNode);
Ağ Düğümünde Dizinleme İçin Klasörleri Belirleme
Düğümü indekslemek istediğiniz klasör(ler)e yönlendirin. Yardımcı sınıf Utils.DocumentsPath örnek veri klasörüne işaret eder.
import com.groupdocs.search.examples.Utils;
import com.groupdocs.search.options.*;
IndexingDocuments.addDirectories(masterNode, Utils.DocumentsPath);
Ağ Düğümleri Üzerinde Metin Arama
tüm düğümlerde bir sorgu çalıştırın ve eşleşen belgeleri alın.
import java.util.ArrayList;
import com.groupdocs.search.scaling.results.*;
ArrayList<NetworkFoundDocument> documents = TextSearchInNetwork.searchAll(masterNode, "ipsum", false);
highlightInDocument(masterNode, documents.get(0), 3); // Highlight results from the first found document.
"ipsum"ifadesini bulmak istediğiniz herhangi bir terimle değiştirin.- Sonraki gösterilen
highlightInDocumentmetodu vurgulamayı uygular.
Highlight Multiple Terms Document – Highlighting Search Results
Aşağıdaki metod, her eşleşmenin etrafındaki fragment’ları nasıl vurgulayacağınızı gösterir. Aynı zamanda çevredeki terim sayısını kontrol etmeyi sağlar; bu, ikincil anahtar kelime highlight multiple terms document ile uyumludur.
import com.groupdocs.search.highlighters.*;
import com.groupdocs.search.options.*;
public static void highlightInDocument(
SearchNetworkNode node,
NetworkFoundDocument document,
int maxFragments) {
Searcher searcher = node.getSearcher();
FragmentHighlighter highlighter = new FragmentHighlighter(OutputFormat.PlainText);
HighlightOptions options = new HighlightOptions();
options.setTermsAfter(5);
options.setTermsBefore(5);
options.setTermsTotal(15);
searcher.highlight(document, highlighter, options); // Perform highlighting on the document.
FragmentContainer[] result = highlighter.getResult();
for (FragmentContainer container : result) {
if (container.getCount() == 0) continue;
String[] fragments = container.getFragments();
int count = Math.min(fragments.length, maxFragments);
for (int j = 0; j < count; j++) {
// Print each fragment within the specified limit.
}
}
}
OutputFormat.PlainText– düz‑metin snippet’leri döndürür; daha zengin UI için HTML’ye geçebilirsiniz.HighlightOptions– her eşleşme öncesi/sonrası dahil edilecek kelime sayısını kontrol eder (setTermsBefore,setTermsAfter).maxFragments– bir belge için gösterilecek snippet sayısını sınırlar.
Ağ Düğümlerini Kapatma
İşiniz bittiğinde, kaynakları serbest bırakmak için tüm düğümleri kapatın.
for (SearchNetworkNode node : nodes) {
node.close();
}
Pratik Uygulamalar
- Enterprise Document Management: Kurumsal dosyaları merkezileştirir ve çalışanların ilgili sözleşme veya politikaları anında bulmasını sağlar.
- Legal Case Files: Önemli hukuki terimleri vurgulayarak örnek dava belgelerini hızlıca ortaya çıkarır.
- R&D Knowledge Bases: Araştırmacılar patentleri veya teknik makaleleri arayabilir ve vurgulanmış alıntıları görebilir.
- E‑commerce Catalogs: Alışveriş yapanlar, açıklamalarda vurgulanmış eşleşmelerle anahtar kelime üzerinden ürün bulabilir.
- Library Systems: Kullanıcılar binlerce kitapta arama yapıp, her dosyayı açmadan vurgulanmış pasajları görebilir.
Performans Düşünceleri
- İndeksleri güncel tutun: Değişen dosyaları gece yeniden indeksleyin veya artımlı güncellemeler kullanın.
- Birden çok düğümden yararlanın: İndeksleme ve sorgu yükünü dağıtarak darboğazları önleyin.
HighlightOptionsayarlarını ince ayar yapın:termsBefore/Afterdeğerlerini azaltmak, çok büyük belgelerde bellek kullanımını düşürür.
Yaygın Sorunlar & Sorun Giderme
| Belirti | Muhtemel Neden | Çözüm |
|---|---|---|
| Sonuç döndürülmüyor | İndeks oluşturulmamış veya yanlış klasöre işaret ediyor | Utils.DocumentsPath doğrulayın ve IndexingDocuments.addDirectories komutunu tekrar çalıştırın |
| Vurgulama çıktısı boş | HighlightOptions limitleri çok düşük veya belge kodlaması sorunu | termsTotal değerini artırın veya belgenin desteklenen kodlamasını doğrulayın |
| Port çakışması hatası | basePort zaten kullanımda | Farklı bir port numarası seçin (ör. 49117) |
| Lisans istisnası | Lisans dosyası eksik veya süresi dolmuş | Uygulama köküne geçerli bir GroupDocs.Search.lic dosyası yerleştirin |
Sıkça Sorulan Sorular
S: Yük dengeleme için birden fazla arama ağı düğümü dağıtabilir miyim?
C: Evet, birden fazla düğüm dağıtarak indeksleme ve sorgu iş yükünü yayabilir, ölçeklenebilirliği ve yanıt süresini artırabilirsiniz.
S: Aynı belgede birden fazla arama terimini nasıl vurgularım?
C: highlight metoduna bir terim listesi gönderin ve HighlightOptions ile her eşleşme için çevredeki kelimeleri gösterilecek şekilde yapılandırın.
S: Gerçek‑zamanlı arama olaylarına abone olmak mümkün mü?
C: Kesinlikle. SearchNetworkNodeEvents.subscribe(masterNode) kullanarak indeksleme ilerlemesi, sorgu yürütme ve hatalar için geri çağrılar alabilirsiniz.
S: GroupDocs.Search hangi dosya formatlarını indeksleme ve vurgulama için destekliyor?
C: DOCX, PDF, HTML, TXT, PPTX ve daha fazlası dahil olmak üzere 50’den fazla formatı destekler.
S: Çok büyük koleksiyonlarda arama hızını nasıl artırabilirim?
C: İndeksleri düzenli olarak güncelleyin, düğümler arasında dağıtın ve fragment boyutunu sınırlamak için HighlightOptions ayarlarını ince ayar yapın.
Sonuç
Bu kılavuzu izleyerek highlight search results java için GroupDocs.Search kullanarak tam üretim‑hazır bir yapı kurmuş oldunuz. Çözümü bir ağ üzerinde ölçeklendirebilir, desteklenen her belge tipini indeksleyebilir, hızlı sorgular çalıştırabilir ve kullanıcıların tam olarak ihtiyaç duydukları bilgiyi bulmalarını sağlayan vurgulanmış snippet’ler döndürebilirsiniz. Bir sonraki adımları keşfedin – sonuçları bir web UI’ye entegre etme, faceted search ekleme veya taranmış PDF’ler için OCR ile birleştirme.
Last Updated: 2026-01-08
Tested With: GroupDocs.Search for Java 25.4
Author: GroupDocs