Java tam metin arama: GroupDocs.Search ile indeks oluşturma

Modern veri odaklı uygulamalarda java full text search, binlerce dosya arasında bilgiyi anında bulmanızı sağlayan motorudur. Bu öğretici, GroupDocs.Search bağımlılığını eklemekten alfabetik sözlüğü ince ayar yapmaya kadar her adımı size gösterir— böylece herhangi bir Java projesinde hızlı ve doğru arama sonuçları sunabilirsiniz.

Hızlı cevaplar

  • “java full text search” nedir? Bir Java uygulamasında birçok dosya üzerinde hızlı metin sorgularını mümkün kılan bir indeks oluşturma sürecidir.
  • Hangi kütüphane bunu kutudan çıkar çıkmaz sağlar? GroupDocs.Search for Java, hazır indeksleme, sözlük yönetimi ve sorgu yürütme sağlar.
  • Bir lisansa ihtiyacım var mı? Değerlendirme için ücretsiz deneme mükemmeldir; üretim dağıtımları için tam lisans gereklidir.
  • Karakter işleme özelleştirilebilir mi? Kesinlikle—özel karakter tiplerini tanımlamak için alfabetik sözlüğü kullanın.
  • Maven zorunlu mu? Maven bağımlılık yönetimini basitleştirir, ancak JAR dosyasını doğrudan da indirebilirsiniz.

Java tam metin arama nedir ve neden bir alfabetik sözlük yönetilmeli?

java full text search indeksi, belgelerinizin tokenleştirilmiş temsillerini saklar ve kelimelerin ya da ifadelerin anında bulunmasını sağlar. Alfabetik sözlük, motorun her karakteri (harf, rakam, sembol) nasıl işleyeceğini belirler; bu doğrudan tokenleştirme ve arama alaka düzeyini etkiler—özellikle özel semboller veya dile özgü kurallar için.

Java tam metin arama için neden GroupDocs.Search kullanılmalı?

GroupDocs.Search, belgeleri tamamen belleğe yüklemeden 10.000 belgeye kadar işleyebilir ve alt saniyelik sorgu süreleri sunar. Karakter tipleri üzerinde tam kontrol sağlar, 50+ giriş ve çıkış formatını destekler ve birden fazla sunucu arasında yatay olarak ölçeklenir; bu da onu kurumsal düzeyde arama için en sağlam seçenek yapar.

Önkoşullar

  • GroupDocs.Search for Java (en son sürüm).
  • Java 17 veya daha yüksek bir sürüm, geliştirme makinenizde kurulu.
  • Maven 3.6+ (veya JAR dosyasını manuel ekleme imkanı).

Gerekli kütüphaneler, sürümler ve bağımlılıklar

  • GroupDocs.Search for Java – en son kararlı sürüm.
  • Temel indeksleme için ek üçüncü taraf kütüphaneler gerekmemektedir.

Ortam kurulum gereksinimleri

Maven uyumlu bir ortamınız olduğundan emin olun. Maven henüz yüklü değilse, resmi sitesinden indirin: Apache Maven.

Bilgi önkoşulları

Java sözdizimi ve dosya G/Ç konularına aşina olmak faydalı olacaktır, ancak aşağıdaki adım adım kılavuz ihtiyacınız olan her şeyi kapsar.

GroupDocs.Search for Java kurulumu

Maven yapılandırması

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 indirme

Maven kullanmak istemiyorsanız, resmi sürüm sayfasından en son JAR dosyasını alın: GroupDocs.Search for Java releases.

Lisans edinme adımları

  1. Ücretsiz deneme – Tüm özellikleri keşfetmek için deneme ile başlayın.
  2. Geçici lisans – Uzatılmış test için geçici bir anahtar isteyin.
  3. Tam lisans – Sınırsız kullanım için üretim lisansı satın alın.

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 SearchIndexSetup {
    public static void main(String[] args) {
        String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\Index";
        Index index = new Index(indexFolder);
    }
}

Uygulama rehberi

Aşağıda, java full text search çözümü oluştururken gerçekleştireceğiniz en yaygın işlemlerin tam bir yürütmesi bulunmaktadır.

Bir indeks oluşturma veya açma

Index sınıfı, disk üzerinde depolanan aranabilir bir koleksiyonu temsil eden temel nesnedir.

import com.groupdocs.search.*;

String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\Index";
Index index = new Index(indexFolder);
  • Parametreler: indexFolder – indeks dosyalarının bulunduğu yol.
  • Amaç: Sonraki indeksleme ve sorgulama için arama ortamını kurar.

Alfabetik sözlüğü bir dosyaya dışa aktarma

AlphabetDictionary nesnesi karakter‑tip eşlemelerini tutar. Dışa aktarmak, yapılandırmayı daha sonra yeniden kullanmanıza veya analiz etmenize olanak tanır.

import com.groupdocs.search.dictionaries.*;

String fileName = "YOUR_OUTPUT_DIRECTORY\\Alphabet.dat";
index.getDictionaries().getAlphabet().exportDictionary(fileName);
  • Parametreler: fileName – dışa aktarılan sözlüğün hedef dosyası.

Alfabetik sözlüğü temizleme

Özel kuralları uygulamadan önce sözlüğü varsayılan durumuna sıfırlayın:

import com.groupdocs.search.dictionaries.*;

if (index.getDictionaries().getAlphabet().getCount() > 0) {
    index.getDictionaries().getAlphabet().clear();
}
  • Amaç: Önceden tanımlanmış tüm karakter tiplerini kaldırır, temiz bir başlangıç sağlar.

Alfabetik sözlüğü bir dosyadan içe aktarma

Daha önce kaydedilmiş bir sözlük yapılandırmasını geri yükleyin:

import com.groupdocs.search.dictionaries.*;

index.getDictionaries().getAlphabet().importDictionary(fileName);
  • Parametreler: fileName – sözlüğü içeren .dat dosyasının yolu.

Alfabetik sözlükte karakter tipini ayarlama

CharacterType enum’u, tokenleştirme sırasında karakterlerin nasıl yorumlanacağını belirler. Belirli karakterlerin tokenleştirme sırasında nasıl ele alınacağını özelleştirin. CharacterType.Blended değeri, motorun tireyi bir kelimenin parçası olarak, ayırıcı yerine, ele almasını sağlar.

import com.groupdocs.search.dictionaries.*;

if (index.getDictionaries().getAlphabet().getCharacterType('-') != CharacterType.Blended) {
    index.getDictionaries().getAlphabet().setRange(new char[] { '-' }, CharacterType.Blended);
}
  • Parametreler: Karakter ('-') ve yeni CharacterType.
  • Neden önemli: Karakter tiplerini ayarlamak, tireli terimler, kimlikler veya özel semboller için arama alaka düzeyini artırır.

Bir klasörden belgeleri indeksleme

Bir klasördeki tüm dosyaları tek bir işlemle arama indeksine ekleyin:

import com.groupdocs.search.*;

String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
index.add(documentsFolder);
  • Parametreler: documentsFolder – indekslemek istediğiniz belgeleri içeren klasör.

Bir indeks içinde arama

SearchResult sınıfı, bir sorgu tarafından döndürülen eşleşen belgeler ve snippet’lerin listesini içerir. Bir sorgu çalıştırın ve eşleşen sonuçları alın:

import com.groupdocs.search.results.*;

String query = "Elliot-Murray-Kynynmound";
SearchResult result = index.search(query);
  • Parametreler: query – aradığınız metin.
  • Sonuç: Eşleşen belgeler ve snippet’leri içeren bir SearchResult nesnesi.

Java tam metin arama için yaygın kullanım senaryoları

  • İçerik yönetim sistemleri (CMS): Makale ve varlık alımını hızlandırır.
  • Hukuki belge depoları: Maddeleri veya dava referanslarını anında bulur.
  • Araştırma kütüphaneleri: Binlerce makaleyi anlık anahtar kelime araması için indeksler.
  • E‑ticaret katalogları: Özel tokenleştirme ile ürün aramasını geliştirir.
  • Müşteri destek portalları: Temsilcilerin ilgili biletleri veya bilgi tabanı makalelerini hızlı bulmasını sağlar.

Performans hususları

  • Artımlı güncellemeler: Tam bir yeniden oluşturma yapmadan indeksi güncel tutmak için yalnızca yeni veya değişen dosyaları yeniden indeksleyin.
  • Sorgu optimizasyonu: Sorguları öz tutun; çok geniş wildcard aramalardan kaçının.
  • Kaynak izleme: Büyük toplu indeksleme sırasında bellek kullanımını izleyin—gerekirse JVM yığın boyutunu ayarlayın.
  • Sözlük boyutu: Alfabetik sözlüğü yalnızca değiştirdiğinizde dışa/içe aktarın; gereksiz I/O başlangıç süresini yavaşlatabilir.

Sıkça sorulan sorular

S: GroupDocs.Search kullanmak için önkoşullar nelerdir?
C: Java 17+, Maven 3.6+ (veya JAR’ı indirin) kurun ve GroupDocs.Search bağımlılığını ekleyin.

S: Üretim kullanımı için lisansı nasıl elde ederim?
C: Ücretsiz deneme ile başlayın, uzatılmış test için geçici bir anahtar isteyin, ardından GroupDocs portalından tam lisans satın alın.

S: Alfabetik sözlükte karakter tiplerini özelleştirebilir miyim?
C: Evet—herhangi bir karakter veya aralığa özel CharacterType değerleri atamak için setRange veya set metodlarını kullanın.

S: Alfabetik sözlüğü dışa ve içe aktarmak mümkün mü?
C: Kesinlikle—sözlük yapılandırmalarını kalıcı hale getirmek veya paylaşmak için exportDictionary ve importDictionary metodlarını kullanın.

S: Bu kılavuz hangi sürümle test edildi?
C: Örnekler, GroupDocs.Search for Java sürüm 25.4 ile doğrulanmıştır.


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

İlgili Öğreticiler