Java’yı Nasıl Dizinleyebilirim – GroupDocs ile Hızlı Belge Arama

Eğer how to index java dosyalarını verimli bir şekilde indekslemeyi merak ediyorsanız, doğru yerdesiniz. Günümüzün veri odaklı dünyasında, doğru belgeyi hızlı bir şekilde bulmak saatlerce süren manuel çalışmayı tasarruf ettirebilir. GroupDocs.Search for Java, birkaç satır kodla bir klasördeki dosyaları aranabilir bir indeks haline getirmenizi, indeks’e belge eklemenizi, indeks’ten belge silmenizi ve dosya sisteminden belge yüklemenizi sağlayan basit bir yol sunar. Bu öğretici, kurulum, indeksleme, arama ve temizlik adımlarını size göstererek hızlı belge aramayı herhangi bir Java uygulamasına entegre etmenizi sağlar.

Hızlı cevaplar

  • Ana amaç nedir? Java belgelerini verimli bir şekilde indeksleyip aramak.
  • Hangi kütüphane gereklidir? GroupDocs.Search for Java (v25.4+).
  • Lisans gerekiyor mu? Ücretsiz deneme veya geçici lisans mevcuttur; üretim için kalıcı lisans gereklidir.
  • İndeksten belgeleri silebilir miyim? Evet, delete metodunu belge anahtarlarıyla kullanarak.
  • Apache Commons IO zorunlu mu? Dosya işleme yardımcıları için önerilir.

“how to index java” nedir?

Java belgelerini indekslemek, belge içeriğini aranabilir terimlere eşleyen bir veri yapısı (indeks) oluşturmak anlamına gelir; bu sayede anahtar kelime sorgularına göre ilgili dosyalar hızlıca bulunabilir. Bu indeks bir kez oluşturulduğunda, sonraki aramalar binlerce dosya arasında bile milisaniyeler içinde çalışır ve geliştirici verimliliği ile son kullanıcı deneyimini büyük ölçüde artırır.

Neden GroupDocs.Search for Java Kullanmalı?

GroupDocs.Search 50+ giriş ve çıkış formatını destekler—PDF, DOCX, XLSX, PPTX, HTML ve yaygın görüntü türleri dahil—ve çok sayfalı belgeleri tüm dosyayı belleğe yüklemeden işleyebilir. Optimize edilmiş algoritmaları, 1 milyon belgeye kadar veri setlerinde sorgu yanıtlarını 100 ms altında verir ve kurumsal düzeyde arama çözümleri için ölçeklenebilir bir seçenek sunar.

Ön Koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

  • GroupDocs.Search for Java (sürüm 25.4 veya daha yeni).
  • Apache Commons IO dosya yardımcıları için.
  • JDK 8 veya üzeri ve IntelliJ IDEA veya Eclipse gibi bir IDE.
  • Temel Java bilgisi ve tercihen Maven bilgisi.

GroupDocs.Search for Java’ı Kurma

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>

Pro ipucu: En son sürümle uyumlu tutarak performans iyileştirmelerinden yararlanabilirsiniz.

Doğrudan indirme (Maven kullanmak istemezseniz)

Resmi siteden en son JAR dosyasını da indirebilirsiniz: GroupDocs.Search for Java releases.

Lisans edinme

  • Ücretsiz deneme: Lisans anahtarı olmadan kütüphaneyi test edin.
  • Geçici lisans: Uzun vadeli değerlendirme için bir tane isteyin.
  • Tam lisans: Üretim dağıtımları için gereklidir.

Temel başlatma

Kütüphanenin doğru yüklendiğini doğrulamak için basit bir Java sınıfı oluşturun:

import com.groupdocs.search.*;

public class DocumentIndexing {
    public static void main(String[] args) {
        Index index = new Index("YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Indexing\\DeleteIndexedDocuments");
        System.out.println("GroupDocs.Search initialized successfully.");
    }
}

Bu programı çalıştırdığınızda, indeks klasörünün hazır olduğunu belirten onay mesajı yazdırılmalıdır.

Belgeleri indekse nasıl eklenir

Document sınıfı, dosyanın ikili içeriğini ve meta verilerini tutan aranabilir bir varlığı temsil eder.
Bir belge eklemek için, dosyanın baytlarını saran ve benzersiz bir anahtar atayan bir Document örneği oluşturun, ardından index.add(document) metodunu çağırın. Kütüphane metni çıkarır, tokenleştirir ve gönderileri otomatik olarak indeks klasörüne kaydeder. Bu işlem dosya boyutuna lineer zamanlıdır ve büyük dosyalar için tembel yükleme desteği sunar.

Doğrudan cevap:

Index index = new Index("YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Indexing\\DeleteIndexedDocuments", true);
  • İlk argüman, indeks dosyalarının saklanacağı klasördür.
  • İkinci argüman (true), klasör mevcut değilse GroupDocs’un klasörü oluşturmasını ve mevcut bir indeksi otomatik olarak güncellemesini sağlar.
String filePath = "YOUR_DOCUMENT_DIRECTORY\\English.docx";
DocumentLoader documentLoader = new DocumentLoader(filePath);
Document document = Document.createLazy(DocumentSourceKind.Stream, documentLoader.getDocumentKey(), documentLoader);
Document[] documents = new Document[]{document};
index.add(documents, new IndexingOptions());
  • DocumentLoader (daha sonra tanımlanmıştır) dosyayı okur ve benzersiz bir anahtar sağlar.
  • createLazy büyük dosyaların verimli işlenmesini sağlar, içerik yalnızca gerektiğinde yüklenir.

Dosya sisteminden belgeleri nasıl yüklenir

DocumentLoader yardımcı sınıfı, diskteki bir dosyayı okur ve sabit bir tanımlayıcıyla eşleşen bir Document nesnesi oluşturur.
Dosyaları yüklemek için, yükleyici dosyanın baytlarını okur, örneğin yolun hash’i gibi benzersiz bir anahtar üretir ve bir Document örneği oluşturur. Bu nesne daha sonra index.add(document) metoduna geçirilebilir. Ayrı bir yükleyici kullanmak dosya‑sistemi ile ilgili işleri izole eder, indeksleme kodunu yeniden kullanılabilir ve farklı depolama arka uçlarıyla test etmeyi kolaylaştırır.

Doğrudan cevap:

class DocumentLoader {
    private final String filePath;
    private final String documentKey;

    public DocumentLoader(String filePath) {
        this.filePath = filePath;
        documentKey = FilenameUtils.getName(filePath);
    }

    public String getDocumentKey() { return documentKey; }

    public Document loadDocument() throws IOException {
        Path path = Paths.get(filePath);
        byte[] buffer = Files.readAllBytes(path);
        ByteArrayInputStream stream = new ByteArrayInputStream(buffer);
        return Document.createFromStream(documentKey, new Date(System.currentTimeMillis()), "." + FilenameUtils.getExtension(filePath), stream);
    }
}

İndekste anahtar kelime araması nasıl yapılır

SearchQuery sınıfı kullanıcının sorgu dizesini kapsar, SearchResult ise eşleşen belge kimliklerini, alıntıları ve alaka skorlarını tutar.
İstediğiniz anahtar kelimelerle bir SearchQuery oluşturun ve isteğe bağlı olarak bulanık eşleşme veya filtreleri yapılandırın, ardından index.search(query) metodunu çağırın. Metod, her eşleşen belgenin kimliğini, vurgulanan alıntıları ve bir alaka skorunu içeren bir SearchResult nesnesi döndürür. Bu sonuçları döngüyle işleyerek alıntıları gösterebilir veya eşleşmeleri daha fazla işleyebilirsiniz.

Doğrudan cevap:

String query = "moment";
SearchResult searchResult1 = index.search(query);
  • search metoduna herhangi bir metin dizesi gönderin ve eşleşen belge kimlikleri, alıntılar ve alaka skorlarını içeren bir SearchResult alın.

Belgeleri indeksten nasıl silinir

UpdateOptions sınıfı, silme gibi değişikliklerin indekse nasıl uygulanacağını kontrol etmenizi sağlar.
Silmek istediğiniz belgelerin benzersiz anahtarlarını index.delete(keys) metoduna verin; kütüphane bu anahtarlara ait tüm gönderileri kaldırır. UpdateOptions örneğiyle silmenin anında mı yoksa toplu olarak mı uygulanacağını belirtebilirsiniz. Silme işleminden sonra indeks tam bir yeniden oluşturma gerektirmeden tutarlı kalır.

Doğrudan cevap:

String[] documentKeys = new String[]{documentLoader.getDocumentKey()};
DeleteResult deleteResult = index.delete(new UpdateOptions(), documentKeys);
  • Kaldırmak istediğiniz belgelerin anahtarlarını sağlayın.
  • UpdateOptions, silmenin nasıl uygulanacağını kontrol etmenizi sağlar (ör. anlık vs. toplu).

Silme işlemlerinden sonra indekslenmiş belgeleri nasıl alırsınız

getDocumentList() metodu, şu anda indeks içinde depolanan tüm belge tanımlayıcılarının bir koleksiyonunu döndürür.
index.getDocumentList() çağrısı, şimdiye kadar yapılan tüm ekleme ve silme işlemlerini yansıtan mevcut belge anahtarlarını verir. Bu liste, istenmeyen girişlerin başarıyla kaldırıldığını doğrulamak veya kalan belgeler üzerinde ek işlem yapmak için kullanılabilir. Hafif bir işlemdir ve indeksi değiştirmez.

Doğrudan cevap:

DocumentInfo[] indexedDocuments2 = index.getIndexedDocuments();
  • Bu çağrı, indekste hâlâ bulunan belgelerin mevcut listesini döndürür ve silmelerin başarılı olduğunu doğrulamanıza yardımcı olur.

Java arama performans ipuçları

java search performance‘ı optimize etmek üç temel adımdan oluşur: (1) toplu ekleme veya silme sonrası index.optimize() çalıştırarak gönderi dosyalarını sıkıştırın, (2) 10 MB’den büyük dosyalar için tembel yüklemeyi etkinleştirerek OutOfMemory hatalarından kaçının ve (3) yeterli JVM yığını tahsis edin (ör. orta ölçekli iş yükleri için -Xmx2g). Bu uygulamalar, indeks büyüdükçe sorgu gecikmesini 100 ms altında tutar.

Pratik uygulamalar

GroupDocs.Search for Java aşağıdaki senaryolarda öne çıkar:

  1. Kurumsal belge portalları – çalışanlar politikaları, sözleşmeleri veya kılavuzları saniyeler içinde bulur.
  2. Hukuki dava yönetimi – avukatlar binlerce PDF ve Word dosyası arasında önceki maddeleri hızla bulur.
  3. Dijital kütüphaneler – üniversiteler araştırma makaleleri ve tezler üzerinde tam metin arama sunar.

Yaygın sorunlar ve çözümler

SorunNedenÇözüm
Sonuç döndürülmediSorgu terimleri indekslenmedi veya durdurma kelimeleri filtrelendiIndexingOptions‘ı doğrulayın ve durdurma kelimeleri listesini ayarlayın
Bellek dışı hatalarBüyük dosyalar erken yükleniyorDocument.createLazy‘a geçin veya JVM yığınını artırın
Silinen belgeler hâlâ görünüyorSilmeden sonra indeks yenilenmediindex.optimize() metodunu çağırın veya indeks örneğini yeniden açın

Sıkça Sorulan Sorular

S: PDF, DOCX ve PPTX’yi birlikte indeksleyebilir miyim?
C: Evet, GroupDocs.Search kutudan çıkınca geniş bir format yelpazesini destekler, 50’den fazla dosya türünü ek dönüştürücü olmadan işler.

S: “delete documents from index” nasıl çalışır?
C: delete metodu belirtilen belge anahtarları için gönderileri kaldırır ve iç yapılandırmaları günceller, böylece indeks tam bir yeniden oluşturma olmadan tutarlı kalır.

S: İndeks boyutunu izlemek için bir yol var mı?
C: index.getStatistics() metodunu kullanarak belge sayısı, toplam boyut ve diğer faydalı metrikleri alabilirsiniz.

S: Her silmeden sonra tüm indeksi yeniden oluşturmalı mıyım?
C: Hayır. Silmeler artımlı olarak yapılır; sadece etkilenen girdiler kaldırılır ve periyodik olarak index.optimize() çağırarak performansı optimal tutabilirsiniz.

S: Şema değişikliğinden sonra tüm dosyaları yeniden indekslemem gerekirse?
C: Yeni bir Index örneği oluşturup farklı bir klasöre işaret edin, tüm belgeleri tekrar ekleyin ve ardından uygulamanızı yeni indeks yolunu kullanacak şekilde değiştirin.

Sonuç

GroupDocs.Search for Java kullanarak how to index java belgelerini nasıl indeksleyeceğinize dair tam bir yol haritasına sahipsiniz—ortamı kurma, belgelere ekleme, dosya sisteminden yükleme, arama yapma, silme ve indeks içeriğini doğrulama adımları. Bu adımları uygulamanıza entegre ederek belge bulunabilirliğini büyük ölçüde artıracak, arama gecikmesini azaltacak ve genel verimliliği yükselteceksiniz.

Sonraki adımlar:

  • Karmaşık sorgularla (joker karakterler, bulanık eşleşme) deney yapın.
  • Faceted arama, özel analizörler ve metadata indeksleme gibi gelişmiş özellikleri keşfedin.

İyi indekslemeler!


Last Updated: 2026-08-05
Tested With: GroupDocs.Search Java 25.4
Author: GroupDocs

İlgili Öğreticiler