Verimli Belge Aramasını GroupDocs.Search for Java ile Ustalıkla Öğrenin

Binlerce PDF, Word dosyası veya elektronik tabloda doğru bölümü bulmak, samanlıkta iğne aramaya benzer. How to create index‘i hızlı bir şekilde oluşturmak ve o iğneyi geri getirmek, bir belge‑arama çözümünü değerli kılar. Bu öğreticide GroupDocs.Search for Java‘ı, yüksek performanslı java arama kütüphanesini kullanarak create index, add documents to index ve extract text from documents‘ı dosyalar, akışlar, stringler ve yapılandırılmış veri gibi çeşitli formatlarda nasıl yapacağınızı öğreneceksiniz. Sonunda, büyük belge koleksiyonlarına ölçeklenebilen ve bellek kullanımını düşük tutan üretim‑hazır bir indeksleme hattına sahip olacaksınız.

Hızlı Yanıtlar

  • Birincil amaç nedir? Belge içeriğini anında how to create index ve geri getirmek için.
  • Hangi kütüphaneyi kullanmalıyım? GroupDocs.Search for Java java search library.
  • Metni bir dosyaya çıktı olarak alabilir miyim? Evet – kütüphane HTML, düz metin ve daha fazlası için output text to file adaptörleri sağlar.
  • Yapılandırılmış çıkarım destekleniyor mu? Kesinlikle – alan‑seviyesi verileri almak için structured text extraction adaptörünü kullanın.
  • Bir lisansa ihtiyacım var mı? Deneme lisansı geliştirme için çalışır; üretim dağıtımları için kalıcı lisans gereklidir.

Öğrenecekleriniz

  • GroupDocs.Search for Java kullanarak how to create index ve add documents to index nasıl yapılır.
  • output text to file, akışlar, stringler ve yapılandırılmış formatlar için teknikler.
  • İndekslemeyi hızlı ve bellek‑verimli tutan performans‑optimizasyon ipuçları.
  • Bu özelliklerin parladığı gerçek‑dünya senaryoları, örneğin hukuk‑sözleşme depoları ve akademik‑makale arşivleri.

Neden GroupDocs.Search for Java Kullanmalı?

GroupDocs.Search 50+ giriş ve çıkış formatını destekler – DOCX, XLSX, PPTX, PDF, HTML ve yaygın görüntü türleri dahil – ve tüm dosyayı belleğe yüklemeden çok‑gigabayt dosyaları indeksleyebilir. Performans testleri, 1 GB belge koleksiyonunun standart 8‑çekirdekli bir sunucuda 2 dakikadan kısa sürede indekslenebileceğini, arama sorgularının ise 100 ms’den az sürede sonuç döndürdüğünü gösteriyor.

Önkoşullar

  • Java Development Kit (JDK) 8 veya daha yeni.
  • GroupDocs.Search for Java kütüphanesi (deneme veya lisanslı).
  • Maven bağımlılık yönetimi için.
  • Temel Java I/O bilgisi.

GroupDocs.Search for Java Kurulumu

İlk olarak, GroupDocs.Search Maven deposunu ve bağımlılığını projenizin pom.xml dosyasına ekleyin. Bu adım, kütüphanenin sınıf yolunda mevcut olmasını sağlar.

Maven Kurulumu
pom.xml dosyanıza aşağıdaki depo ve bağımlılık yapılandırmalarını 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 indirmeyi tercih edenler, en son sürümü GroupDocs.Search for Java releases adresinden edinebilir.

Lisans Alımı
GroupDocs.Search’ı üretimde kullanmak için resmi siteden deneme veya kalıcı bir lisans edinin. Deneme lisansı geliştirme ve test için sınırsızdır.

Java’da özel ayarlarla indeks oluşturma

Index arama yapılabilir belge koleksiyonunu temsil eden temel sınıftır.
IndexSettings indeks için sıkıştırma gibi seçenekleri yapılandırır.
CompressionLevel saklanan metne uygulanan sıkıştırma derecesini tanımlar.

Index nesnesini sıkıştırma etkinleştirilmiş şekilde yükleyin, bir klasöre yönlendirin ve tüm desteklenen dosyaları ekleyin. Bu doğrudan‑cevap paragrafı tam olarak ne yapmanız gerektiğini söyler: Index‘i new Index("indexFolder", new IndexSettings().setCompressionLevel(CompressionLevel.High)) ile örnekleyin, ardından index.add("documentsFolder", true) çağrısıyla her desteklenen dosyayı özyinelemeli olarak indeksleyin. Yüksek sıkıştırma modu, disk üzerindeki boyutu %70’e kadar azaltırken arama hızını hızlı tutar.

İndeksi oluşturmak, herhangi bir arama‑tabanlı uygulamanın temelidir. Aşağıdaki örnek, süreci adım adım gösterir, her ayarı açıklar ve indeksin başarıyla oluşturulduğunu nasıl doğrulayacağınızı gösterir.

İndeks Oluşturma ve Belge İndeksleme

Genel Bakış

Index sınıfı, arama yapılabilir belge koleksiyonunu temsil eden temel bileşendir. Hızlı aramalar için ters indeksler, terim sözlükleri ve meta verileri depolar.

import com.groupdocs.search.*;
import java.io.ByteArrayOutputStream;

public class FeatureIndexCreation {
    public static void main(String[] args) {
        // Define the folder paths for indexing
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        String documentsFolder = YOUR_DOCUMENT_DIRECTORY + "/DocumentsPath";  // Adjust as needed

        // Creating an index settings instance with compression enabled
        IndexSettings settings = new IndexSettings();
        settings.setTextStorageSettings(new TextStorageSettings(Compression.High));

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

        // Adding documents from the specified folder to the index
        index.add(documentsFolder);
    }
}

Açıklama

  • Index Settings: Metin depolama için high compression etkinleştiriyoruz, disk alanı kullanımını optimize ederken sorgu hızından ödün vermeyiz.
  • Adding Documents: index.add() yöntemi adds documents to index, klasörü özyinelemeli tarar ve tüm desteklenen formatları otomatik olarak işler.

Metni dosyaya, akışa, stringe ve yapılandırılmış formatlara nasıl çıktı alırız

İndeksleme sonrası, genellikle bir belgenin ham ya da biçimlendirilmiş metnini çıkarmanız gerekir. GroupDocs.Search, çıkarılan içeriği bir dosyaya, bellek içi akışa, bir Java String‘e veya yapılandırılmış bir nesne modeline yazmanıza olanak tanıyan dört adaptör sunar.

Belge Metni Çıktısını Dosyaya

FileOutputAdapter çıkarılan belge metnini seçilen formatta bir dosyaya yazar.

Genel Bakış

FileOutputAdapter, çıkarılan metni seçilen formatta (HTML, düz metin vb.) doğrudan diskte bir dosyaya yazar. Bu, insan‑okunabilir raporlar oluşturmak veya sonraki işleme hatlarına beslemek için faydalıdır.

import com.groupdocs.search.*;

public class FeatureOutputToFile {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to an HTML file
            FileOutputAdapter fileOutputAdapter = new FileOutputAdapter(OutputFormat.Html, YOUR_OUTPUT_DIRECTORY + "/Text.html");
            index.getDocumentText(document, fileOutputAdapter);
        }
    }
}

Açıklama

  • FileOutputAdapter: İndekslenmiş belgenin metnini HTML’ye dönüştürür ve belirtilen dosya yoluna yazar, başlıklar ve tablolar gibi temel biçimlendirmeyi korur.

Belge Metni Çıktısını Akışa

StreamOutputAdapter çıkarılan belge metnini geçici bir dosya oluşturmadan bir ByteArrayOutputStream‘e akıtır.

Genel Bakış

İçeriğe sadece geçici olarak ihtiyacınız olduğunda—örneğin HTTP üzerinden göndermek veya bir web yanıtına gömmek—StreamOutputAdapter‘ı kullanın. Metni bir ByteArrayOutputStream‘e akıtarak geçici dosya oluşturma yükünden kaçınır.

import com.groupdocs.search.*;
import java.io.ByteArrayOutputStream;

public class FeatureOutputToStream {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a stream in HTML format
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            StreamOutputAdapter streamOutputAdapter = new StreamOutputAdapter(OutputFormat.Html, stream);
            index.getDocumentText(document, streamOutputAdapter);
        }
    }
}

Açıklama

  • StreamOutputAdapter: Belgenin metnini bir ByteArrayOutputStream‘e akıtarak dosya sistemine dokunmadan esnek bir işleme olanak tanır.

Belge Metni Çıktısını String’e

StringOutputAdapter tüm belge metnini tek bir String nesnesinde yakalar.

Genel Bakış

Hızlı günlükleme, hata ayıklama veya UI gösterimi için StringOutputAdapter tüm belge metnini tek bir String nesnesinde yakalar.

import com.groupdocs.search.*;

public class FeatureOutputToString {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a string in HTML format
            StringOutputAdapter stringOutputAdapter = new StringOutputAdapter(OutputFormat.Html);
            index.getDocumentText(document, stringOutputAdapter);
            String result = stringOutputAdapter.getResult();
        }
    }
}

Açıklama

  • StringOutputAdapter: Belgenin metnini bir String içinde yakalar, böylece günlüklerde, konsol çıktısında veya UI bileşenlerinde kolayca gömülür.

Belge Metni Çıktısını Yapılandırılmış Formata

StructuredOutputAdapter paragraflar, tablolar ve özel meta veriler içeren zengin bir nesne modeli döndürür.

Genel Bakış

StructuredOutputAdapter paragraflar, tablolar ve özel meta veriler içeren zengin bir nesne modeli döndürür. Bu format, sonraki doğal‑dil‑işleme (NLP) veya veri‑çıkarma iş akışları için idealdir.

import com.groupdocs.search.*;

public class FeatureOutputToStructure {
    public static void main(String[] args) {
        String indexFolder = YOUR_DOCUMENT_DIRECTORY + "/OutputAdapters/Index";
        Index index = new Index(indexFolder);

        // Assuming documents are already indexed, retrieve the first document
        DocumentInfo[] documents = index.getIndexedDocuments();
        if (documents.length > 0) {
            DocumentInfo document = documents[0];

            // Output document text to a structured format like PlainText
            StructuredOutputAdapter structuredOutputAdapter = new StructuredOutputAdapter(OutputFormat.PlainText);
            index.getDocumentText(document, structuredOutputAdapter);
        }
    }
}

Açıklama

  • StructuredOutputAdapter: Belge metnini structured text extraction formatına çıkarır, ince‑düzey analiz, alan çıkarımı ve makine‑öğrenimi hatlarıyla entegrasyon sağlar.

Yaygın Sorunlar ve Çözümler

SorunNedenÇözüm
İndeks oluşturulmadıYanlış klasör yolu veya eksik yazma izinleriindexFolder‘ın mevcut olduğunu ve uygulamanın yazma erişimine sahip olduğunu doğrulayın
Hiç belge döndürülmediindex.add() çağrılmadı veya yanlış kaynak klasörüdocumentsFolder‘ın doğru dizine işaret ettiğinden ve desteklenen dosya türlerini içerdiğinden emin olun
Çıktı dosyası boşÇıktı adaptörü yolu geçersiz veya dizinler eksikÇalıştırmadan önce hedef dizini (YOUR_OUTPUT_DIRECTORY) oluşturun
Büyük dosyalarda bellek dalgalanmalarıTüm dosyanın belleğe yüklenmesiVerileri adım adım işlemek için StreamOutputAdapter kullanın

Sıkça Sorulan Sorular

S: GroupDocs.Search’ı Kotlin veya Scala gibi diğer JVM dilleriyle kullanabilir miyim?
C: Evet, kütüphane saf Java’dır ve herhangi bir JVM diliyle sorunsuz çalışır.

S: Sıkıştırma arama hızını nasıl etkiler?
C: Yüksek sıkıştırma, disk kullanımını %70’e kadar azaltır ve indeksleme sırasında yalnızca minimal CPU yükü ekler; sorgu gecikmesi tipik iş yükleri için 100 ms’nin altında kalır.

S: Mevcut bir indeksi yeniden oluşturmayıp güncellemek mümkün mü?
C: Kesinlikle. Yeni dosyalar için index.add(), eski dosyaları silmek için index.remove() kullanarak artımlı güncellemeler yapabilirsiniz.

S: Doğal‑dil‑işleme (NLP) hatları için en iyi çıktı formatı hangisidir?
C: structured text extraction adaptörünün PlainText sonucu, NLP görevleri için ideal, temiz ve dil‑bağımsız içerik sağlar.

S: Geliştirme ve test için bir lisansa ihtiyacım var mı?
C: Ücretsiz deneme lisansı geliştirme ve değerlendirme için yeterlidir; üretim dağıtımları için satın alınmış bir lisans gerekir.

Sonuç

Artık how to create index, belgeleri ekleme ve ihtiyaç duyabileceğiniz her formatta metin çıkarma için eksiksiz, üretim‑hazır bir iş akışına sahipsiniz. Index‘i sıkıştırma ile yapılandırarak başlayın, belge koleksiyonunuzu ekleyin ve sonraki senaryonuz için uygun çıktı adaptörünü seçin—ister HTML raporları oluşturmak, bir NLP modeline beslemek, ister web istemcisine içerik akıtmak olsun. Artımlı güncelleme API’leriyle indeksinizi maliyetli yeniden oluşturmalara gerek kalmadan güncel tutmayı deneyin ve herhangi bir belge deposunda hızlı, güvenilir aramanın keyfini çıkarın.

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

İlgili Öğreticiler