Menguasai Pencarian Dokumen yang Efisien dengan GroupDocs.Search untuk Java

Menemukan bagian yang tepat di dalam ribuan file PDF, Word, atau spreadsheet dapat terasa seperti mencari jarum dalam tumpukan jerami. How to create index dengan cepat dan mengambil jarum tersebut adalah apa yang membuat solusi pencarian dokumen berharga. Dalam tutorial ini Anda akan belajar cara menggunakan GroupDocs.Search for Java, sebuah perpustakaan pencarian java berkinerja tinggi, untuk create index, add documents to index, dan extract text from documents dalam berbagai format seperti file, aliran, string, dan data terstruktur. Pada akhir tutorial Anda akan memiliki pipeline pengindeksan siap produksi yang dapat diskalakan ke koleksi dokumen besar sambil menjaga penggunaan memori tetap rendah.

Jawaban Cepat

  • What is the primary purpose? To how to create index dan mengambil konten dokumen secara instan.
  • Which library should I use? The GroupDocs.Search for Java java search library.
  • Can I output text to a file? Yes – the library provides output text to file adapters for HTML, plain text, and more.
  • Is structured extraction supported? Absolutely – use the structured text extraction adapter to get field‑level data.
  • Do I need a license? A trial license works for development; a permanent license is required for production deployments.

Apa yang Akan Anda Pelajari

  • Cara how to create index dan add documents to index menggunakan GroupDocs.Search for Java.
  • Teknik untuk output text to file, aliran, string, dan format terstruktur.
  • Tips optimasi kinerja yang menjaga pengindeksan tetap cepat dan efisien memori.
  • Skenario dunia nyata di mana fitur-fitur ini bersinar, seperti repositori kontrak hukum dan arsip makalah akademik.

Mengapa Menggunakan GroupDocs.Search untuk Java?

GroupDocs.Search mendukung 50+ format input dan output – termasuk DOCX, XLSX, PPTX, PDF, HTML, dan tipe gambar umum – dan dapat mengindeks file multi‑gigabyte tanpa memuat seluruh file ke memori. Benchmark menunjukkan bahwa koleksi dokumen 1 GB dapat diindeks dalam kurang dari 2 menit pada server standar 8‑core, sementara kueri pencarian mengembalikan hasil dalam kurang dari 100 ms.

Prasyarat

  • Java Development Kit (JDK) 8 atau lebih baru.
  • GroupDocs.Search for Java library (trial or licensed).
  • Maven untuk manajemen dependensi.
  • Pengetahuan dasar Java I/O.

Menyiapkan GroupDocs.Search untuk Java

Pertama, tambahkan repositori Maven GroupDocs.Search dan dependensinya ke pom.xml proyek Anda. Langkah ini memastikan perpustakaan tersedia di classpath.

Maven Setup
Add the following repository and dependency configurations in your pom.xml file:

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

Bagi yang lebih suka mengunduh langsung, Anda dapat memperoleh versi terbaru dari GroupDocs.Search for Java releases.

License Acquisition
Untuk menggunakan GroupDocs.Search dalam produksi, dapatkan lisensi trial atau permanen dari situs resmi. Lisensi trial tidak dibatasi untuk pengembangan dan pengujian.

Cara membuat indeks java dengan pengaturan khusus

Index adalah kelas inti yang mewakili koleksi dokumen yang dapat dicari.
IndexSettings mengkonfigurasi opsi seperti kompresi untuk indeks.
CompressionLevel menentukan tingkat kompresi yang diterapkan pada teks yang disimpan.

Muat objek Index dengan kompresi diaktifkan, arahkan ke sebuah folder, dan tambahkan semua file yang didukung. Paragraf jawaban langsung ini memberi tahu Anda persis apa yang harus dilakukan: instantiate Index dengan new Index("indexFolder", new IndexSettings().setCompressionLevel(CompressionLevel.High)), kemudian panggil index.add("documentsFolder", true) untuk mengindeks secara rekursif setiap file yang didukung. Mode kompresi tinggi mengurangi ukuran di disk hingga 70 % sambil menjaga kecepatan pencarian tetap cepat.

Membuat indeks adalah fondasi bagi setiap aplikasi berbasis pencarian. Contoh di bawah ini memandu Anda melalui proses, menjelaskan setiap pengaturan, dan menunjukkan cara memverifikasi bahwa indeks telah berhasil dibangun.

Pembuatan Indeks dan Pengindeksan Dokumen

Ikhtisar

Kelas Index adalah komponen inti yang mewakili koleksi dokumen yang dapat dicari. Ia menyimpan inverted indexes, kamus istilah, dan metadata yang diperlukan untuk pencarian cepat.

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);
    }
}

Explanation

  • Index Settings: Kami mengaktifkan high compression untuk penyimpanan teks, mengoptimalkan penggunaan ruang disk tanpa mengorbankan kecepatan kueri.
  • Adding Documents: Metode index.add() adds documents to index, memindai folder secara rekursif dan menangani semua format yang didukung secara otomatis.

Cara mengekspor teks ke file, aliran, string, dan format terstruktur

Setelah pengindeksan, Anda sering perlu mengekstrak teks mentah atau terformat dari sebuah dokumen. GroupDocs.Search menawarkan empat adapter yang memungkinkan Anda menulis konten yang diekstrak ke file, aliran dalam memori, String Java, atau model objek terstruktur.

Ekspor Teks Dokumen ke File

FileOutputAdapter menulis teks dokumen yang diekstrak ke file dalam format yang dipilih.

Ikhtisar

FileOutputAdapter menulis teks yang diekstrak dalam format yang dipilih (HTML, plain text, dll.) langsung ke file di disk. Ini berguna untuk menghasilkan laporan yang dapat dibaca manusia atau memberi makan pipeline pemrosesan hilir.

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);
        }
    }
}

Explanation

  • FileOutputAdapter: Mengonversi teks dokumen yang diindeks menjadi HTML dan menulisnya ke jalur file yang ditentukan, mempertahankan format dasar seperti heading dan tabel.

Ekspor Teks Dokumen ke Aliran

StreamOutputAdapter menyalurkan teks dokumen yang diekstrak ke ByteArrayOutputStream tanpa membuat file sementara.

Ikhtisar

Ketika Anda hanya membutuhkan konten secara sementara—misalnya, untuk mengirimnya melalui HTTP atau menyematkannya dalam respons web—gunakan StreamOutputAdapter. Ia menyalurkan teks ke ByteArrayOutputStream, menghindari overhead pembuatan file sementara.

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);
        }
    }
}

Explanation

  • StreamOutputAdapter: Menyalurkan teks dokumen ke ByteArrayOutputStream, memungkinkan penanganan fleksibel tanpa menyentuh sistem file.

Ekspor Teks Dokumen ke String

StringOutputAdapter menangkap seluruh teks dokumen dalam satu objek String.

Ikhtisar

Untuk pencatatan cepat, debugging, atau tampilan UI, StringOutputAdapter menangkap seluruh teks dokumen dalam satu objek String.

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();
        }
    }
}

Explanation

  • StringOutputAdapter: Menangkap teks dokumen dalam sebuah String, memudahkan penyisipan ke log, output konsol, atau komponen UI.

Ekspor Teks Dokumen ke Format Terstruktur

StructuredOutputAdapter mengembalikan model objek kaya yang berisi paragraf, tabel, dan metadata khusus.

Ikhtisar

StructuredOutputAdapter mengembalikan model objek kaya yang berisi paragraf, tabel, dan metadata khusus. Format ini ideal untuk pipeline pemrosesan bahasa alami (NLP) atau alur kerja ekstraksi data hilir.

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);
        }
    }
}

Explanation

  • StructuredOutputAdapter: Mengekstrak teks dokumen ke dalam format structured text extraction, memungkinkan analisis detail, ekstraksi bidang, dan integrasi dengan pipeline machine‑learning.

Masalah Umum dan Solusinya

MasalahPenyebabSolusi
Index not createdPath folder tidak tepat atau izin menulis tidak adaPastikan indexFolder ada dan aplikasi memiliki akses menulis
No documents returnedindex.add() tidak dipanggil atau folder sumber salahPastikan documentsFolder mengarah ke direktori yang tepat dan berisi tipe file yang didukung
Output file emptyJalur adapter output tidak valid atau direktori hilangBuat direktori target (YOUR_OUTPUT_DIRECTORY) sebelum menjalankan
Memory spikes with large filesMemuat seluruh file ke memoriGunakan StreamOutputAdapter untuk memproses data secara bertahap

Pertanyaan yang Sering Diajukan

Q: Apakah saya dapat menggunakan GroupDocs.Search dengan bahasa JVM lain seperti Kotlin atau Scala?
A: Ya, perpustakaan ini murni Java dan bekerja mulus dengan bahasa JVM apa pun.

Q: Bagaimana kompresi memengaruhi kecepatan pencarian?
A: Kompresi tinggi mengurangi penggunaan disk hingga 70 % dan menambahkan beban CPU minimal selama pengindeksan; latensi kueri tetap di bawah 100 ms untuk beban kerja tipikal.

Q: Apakah memungkinkan memperbarui indeks yang ada tanpa membangunnya kembali?
A: Absolutely. Use index.add() for new files and index.remove() to delete outdated ones, allowing incremental updates.

Q: Format output mana yang terbaik untuk pipeline pemrosesan bahasa alami (NLP)?
A: The PlainText result from the structured text extraction adapter provides clean, language‑agnostic content ideal for NLP tasks.

Q: Apakah saya memerlukan lisensi untuk pengembangan dan pengujian?
A: A free trial license suffices for development and evaluation; production deployments require a purchased license.

Kesimpulan

Anda kini memiliki alur kerja lengkap yang siap produksi untuk how to create index, menambahkan dokumen, dan mengekstrak teks mereka dalam setiap format yang mungkin Anda butuhkan. Mulailah dengan mengonfigurasi Index dengan kompresi, tambahkan koleksi dokumen Anda, dan pilih adapter output yang sesuai untuk skenario hilir Anda—apakah itu menghasilkan laporan HTML, memberi makan model NLP, atau menyalurkan konten ke klien web. Bereksperimenlah dengan API pembaruan inkremental untuk menjaga indeks tetap segar tanpa harus membangun ulang yang mahal, dan Anda akan menikmati pencarian yang cepat dan andal di seluruh repositori dokumen apa pun.


Last Updated: 2026-06-27
Tested With: GroupDocs.Search 25.4 for Java
Author: GroupDocs

Tutorial Terkait