Java’da GroupDocs.Search Kullanarak Eşanlamlılarla Arama

Kullanıcılarınızın farklı kelimeler yazsalar bile doğru içeriği bulmalarını istiyorsanız, eşanlamlılarla arama çözümüdür. Bu rehberde, bilmeniz gereken her şeyi adım adım ele alacağız—eşanlamlı sözlüğü oluşturma, içe/dışa aktarma, eşanlamlı gruplarını yönetme ve sonunda sorguları otomatik olarak bu eşanlamlılarla genişleten bir arama çalıştırma. Bir CMS, e‑ticaret kataloğu veya yasal belge deposu oluşturuyor olun, eşanlamlı desteği eklemek alaka düzeyini ve dönüşüm oranlarını büyük ölçüde artırabilir.

Hızlı Yanıtlar

  • Eşanlamlı eklemenin birincil adımı nedir? Index başlatın ve SynonymDictionary API’sini kullanın.
  • Bir eşanlamlı sözlüğü içe aktarabilir miyim? Evet – önceden oluşturulmuş dosyayı yüklemek için importDictionary(path) kullanın.
  • Eşanlamlılarla aramayı nasıl etkinleştiririm? SearchOptions.setUseSynonymSearch(true) ayarlayın.
  • Eşanlamlı gruplarını yönetmek mümkün mü? Kesinlikle – sözlük API’si aracılığıyla grupları temizleyebilir, ekleyebilir veya alabilirsiniz.
  • Arama indeksini optimize ederken neyi göz önünde bulundurmalıyım? Kullanılmayan girdileri düzenli olarak temizleyin ve büyük veri setleri için JVM yığınını ayarlayın.

Eşanlamlılarla Arama Nedir?

“Eşanlamlılarla arama”, motorun bir dizi kelimeyi veya ifadeyi birbirinin yerine geçebilecek şekilde ele alması anlamına gelir. Bir kullanıcı “better” (daha iyi) yazdığında, motor aynı eşanlamlı grubunda tanımladığınız “improve”, “enhance” veya diğer terimleri de arar ve kullanıcının sorgusunu değiştirmeden daha zengin sonuçlar sunar.

GroupDocs.Search’te Eşanlamlı Desteği Neden Etkinleştirilmeli?

  • Daha iyi kullanıcı deneyimi: Ziyaretçiler farklı terminoloji kullansalar bile ilgili belgeleri bulur.
  • Daha yüksek dönüşüm oranları: E‑ticaret platformları, çeşitli ürün terimlerini eşleştirerek daha fazla satış elde eder.
  • Basitleştirilmiş bakım: Tek bir merkezi sözlük birden çok uygulamaya hizmet edebilir, güncellemeler zahmetsiz olur.

Önkoşullar

  • GroupDocs.Search for Java sürüm 25.4 veya daha yeni.
  • Maven desteği olan bir Java IDE (IntelliJ IDEA, Eclipse vb.).
  • Temel Java bilgisi ve Maven proje yapısına aşinalık.

Gerekli Kütüphaneler ve Sürümler

  • GroupDocs.Search for Java sürüm 25.4 veya üzeri.

Ortam Kurulumu

  • Seçtiğiniz IDE (IntelliJ IDEA, Eclipse vb.).
  • Bağımlılık yönetimi için Maven.

Bilgi Gereksinimleri

  • Java’da nesne yönelimli programlama.
  • Temel dosya I/O işlemleri.

GroupDocs.Search for Java Kurulumu

Kurulum Bilgileri

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

Doğrudan İndirme – ayrıca en son JAR dosyasını GroupDocs.Search for Java releases adresinden indirebilirsiniz.

Lisans Edinimi

  • Ücretsiz Deneme: Lisans olmadan temel özellikleri test edin.
  • Geçici Lisans: Değerlendirme sırasında deneme yeteneklerini genişletir.
  • Satın Alma: Üretim kullanımı ve tam özellik seti için gereklidir.

Temel Başlatma ve Kurulum

Index örneği oluşturun, ardından aranabilir belgeleri ekleyin:

import com.groupdocs.search.*;

String indexFolder = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/ManagingDictionaries/SynonymDictionary/Index";
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY/DocumentsPath2";

// Creating an index in the specified folder
Index index = new Index(indexFolder);

// Adding documents from a specific folder to the index
index.add(documentsFolder);

Arama İndeksinize Eşanlamlılar Nasıl Eklenir

Bir indeks oluşturmak temeldir. Aşağıda, ihtiyacınız olan tam kodla eşleştirilmiş temel adımları adım adım gösteriyoruz.

Özellik 1: Bir İndeks Oluşturma ve İndeksleme

// Create an index in the specified folder
Index index = new Index(indexFolder);

// Add documents from the given folder to the index
index.add(documentsFolder);

Özellik 2: Bir Kelime İçin Eşanlamlıları Getirme

String[] synonyms = index.getDictionaries().getSynonymDictionary().getSynonyms("make");

Özellik 3: Eşanlamlı Grupları Getirme

String[][] synonymGroups = index.getDictionaries().getSynonymDictionary().getSynonymGroups("make");

Özellik 4: Eşanlamlı Sözlük Girdilerini Yönetme

if (index.getDictionaries().getSynonymDictionary().getCount() > 0) {
    index.getDictionaries().getSynonymDictionary().clear();
}

String[][] newSynonymGroups = new String[][]{
    new String[] { "achieve", "accomplish", "attain", "reach" },
    new String[] { "accept", "take", "have" },
    new String[] { "improve", "better" }
};

index.getDictionaries().getSynonymDictionary().addRange(newSynonymGroups);

Özellik 5: Eşanlamlıları Bir Dosyaya Dışa Aktarma

String exportFilePath = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/ManagingDictionaries/SynonymDictionary/Synonyms.dat";
index.getDictionaries().getSynonymDictionary().exportDictionary(exportFilePath);

Özellik 6: Eşanlamlıları Bir Dosyadan İçe Aktarma

index.getDictionaries().getSynonymDictionary().importDictionary(exportFilePath);

Özellik 7: Eşanlamlı Desteği ile Arama Yapma

String query = "better";
SearchOptions options = new SearchOptions();
options.setUseSynonymSearch(true);

SearchResult result = index.search(query, options);

Eşanlamlılarla Nasıl Arama Yapılır

setUseSynonymSearch(true) etkinleştirildiğinde, motor sorguyu oluşturduğunuz veya içe aktardığınız eşanlamlı sözlüğü kullanarak otomatik olarak genişletir. Bu adım, kullanıcının arama davranışını değiştirmeden daha zengin sonuçlar sunmak için kritiktir.

Eşanlamlı Sözlüğü Nasıl İçe Aktarılır

Başka bir ortamda hazırlanmış bir .dat dosyanız varsa, sadece importDictionary(path) çağırın. Bu, sözlükleri geliştirme, test ve üretim sunucuları arasında senkronize etmek için idealdir.

Eşanlamlı Grupları Nasıl Yönetilir

Eşanlamlı gruplar, bir dizi terimi tek bir mantıksal varlık olarak ele almanızı sağlar. Grupları ekleme, temizleme veya getirme, yukarıdaki kod parçacıklarında gösterildiği gibi SynonymDictionary API’si aracılığıyla yapılır.

Arama İndeksini Nasıl Optimize Edebilirsiniz

  • Kullanılmayan girdileri düzenli olarak temizleyin: Toplu güncellemelerden önce clear() kullanın.
  • JVM yığınını ayarlayın: Büyük sözlükler daha fazla bellek gerektirebilir.
  • Kütüphaneyi güncel tutun: Yeni sürümler performans iyileştirmeleri içerir.

Pratik Uygulamalar

  1. İçerik Yönetim Sistemleri (CMS): Kullanıcılar alternatif terminoloji kullansalar bile makaleleri bulur.
  2. E‑ticaret Platformları: Ürün aramaları “laptop” ve “notebook” gibi eşanlamlılara tolerans gösterir.
  3. Belge Depoları: Hukuki veya tıbbi arşivler, alan‑spesifik eşanlamlı gruplardan faydalanır.

Performans Düşünceleri

  • İndeks Depolamayı Optimize Edin: Eski verileri kaldırmak için periyodik olarak indeksi yeniden oluşturun.
  • Bellek Kullanımını Yönetin: Büyük eşanlamlı dosyalarını yüklerken yığın tüketimini izleyin.
  • Düzenli Güncellemeler: Hata düzeltmeleri ve hız artışları için en son GroupDocs.Search sürümünü kullanın.

Yaygın Sorunlar ve Çözümler

SorunMuhtemel NedenÇözüm
Eşanlamlı eşleşmeleri görünmüyorsetUseSynonymSearch(true) ayarlanmamış veya sözlük içe aktarılmamışSeçeneğin etkin olduğundan ve sözlük dosyasının mevcut olduğundan emin olun.
İçe aktarım sırasında bellek yetersizliği hatalarıÇok büyük .dat dosyası JVM yığınını aşıyor-Xmx yığın boyutunu artırın veya daha küçük partiler halinde içe aktarın.
Sonuçlarda yinelenen girdilerAynı terim birden fazla eşanlamlı grubunda görünüyorÇakışan grupları clear() ardından addRange() kullanarak birleştirin.

Sıkça Sorulan Sorular

S: GroupDocs.Search kullanmak için minimum sistem gereksinimi nedir?
C: Java 8 veya daha yeni bir uyumlu JDK’ya sahip herhangi bir modern işletim sistemi yeterlidir.

S: Eşanlamlı sözlüğümü ne sıklıkta yenilemeliyim?
C: Yeni terminoloji ortaya çıktığında güncelleyin—temiz bir yenileme için clear() ardından addRange() kullanın.

S: GroupDocs.Search’i lisans satın almadan çalıştırabilir miyim?
C: Ücretsiz deneme değerlendirme için çalışır, ancak üretim dağıtımları için lisans gereklidir.

S: Büyük veri setlerini indekslemek için en iyi uygulamalar nelerdir?
C: Veriyi mantıksal partilere bölün, yığın kullanımını izleyin ve düzenli indeks bakımını planlayın.

S: Beklenen eşanlamlı eşleşmeleri görmüyorum—ne kontrol etmeliyim?
C: Sözlüğün doğru içe aktarıldığını, setUseSynonymSearch(true) seçeneğinin etkin olduğunu ve terimlerin eşanlamlı gruplarında bulunduğunu doğrulayın.

Kaynaklar


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