เชี่ยวชาญการค้นหาเอกสารอย่างมีประสิทธิภาพด้วย GroupDocs.Search for Java

การค้นหาข้อความที่ต้องการในไฟล์ PDF, Word หรือสเปรดชีตนับพันอาจรู้สึกเหมือนการตามหาสิ่งที่เล็กเหมือนเข็มในกองฟาง. How to create index อย่างรวดเร็วและดึงเอาเข็มนั้นออกมาคือสิ่งที่ทำให้โซลูชันการค้นหาเอกสารมีคุณค่า. ในบทแนะนำนี้คุณจะได้เรียนรู้วิธีใช้ GroupDocs.Search for Java, ไลบรารีการค้นหา java ที่มีประสิทธิภาพสูง, เพื่อ create index, add documents to index, และ extract text from documents ในรูปแบบหลายประเภทเช่น ไฟล์, สตรีม, สตริง, และข้อมูลเชิงโครงสร้าง. เมื่อจบคุณจะมี pipeline การทำดัชนีที่พร้อมสำหรับการผลิตซึ่งสามารถขยายตัวให้รองรับคอลเลกชันเอกสารขนาดใหญ่พร้อมการใช้หน่วยความจำน้อย.

คำตอบด่วน

  • วัตถุประสงค์หลักคืออะไร? To how to create index and retrieve document content instantly.
  • ฉันควรใช้ไลบรารีใด? The GroupDocs.Search for Java java search library.
  • ฉันสามารถส่งออกข้อความเป็นไฟล์ได้หรือไม่? Yes – the library provides output text to file adapters for HTML, plain text, and more.
  • การสกัดข้อมูลเชิงโครงสร้างได้รับการสนับสนุนหรือไม่? Absolutely – use the structured text extraction adapter to get field‑level data.
  • ฉันต้องการใบอนุญาตหรือไม่? A trial license works for development; a permanent license is required for production deployments.

สิ่งที่คุณจะได้เรียนรู้

  • วิธี how to create index และ add documents to index ด้วย GroupDocs.Search for Java.
  • เทคนิคสำหรับ output text to file, streams, strings, และรูปแบบเชิงโครงสร้าง.
  • เคล็ดลับการเพิ่มประสิทธิภาพการทำงานที่ทำให้การทำดัชนีเร็วและใช้หน่วยความจำน้อย.
  • สถานการณ์จริงที่คุณลักษณะเหล่านี้โดดเด่น เช่น ที่เก็บสัญญากฎหมายและคลังเอกสารวิชาการ.

ทำไมต้องใช้ GroupDocs.Search for Java?

GroupDocs.Search รองรับ 50+ input and output formats – รวมถึง DOCX, XLSX, PPTX, PDF, HTML, และรูปภาพทั่วไป – และสามารถทำดัชนีไฟล์หลายกิกะไบต์โดยไม่ต้องโหลดไฟล์ทั้งหมดเข้าสู่หน่วยความจำ. การทดสอบแสดงให้เห็นว่าคอลเลกชันเอกสารขนาด 1 GB สามารถทำดัชนีได้ภายในเวลาไม่ถึง 2 นาทีบนเซิร์ฟเวอร์ 8‑คอร์มาตรฐาน, ในขณะที่การค้นหาจะคืนผลภายในเวลาไม่เกิน 100 ms.

ข้อกำหนดเบื้องต้น

  • Java Development Kit (JDK) 8 หรือใหม่กว่า.
  • GroupDocs.Search for Java library (trial หรือ licensed).
  • Maven สำหรับการจัดการ dependencies.
  • ความรู้พื้นฐานเกี่ยวกับ Java I/O.

การตั้งค่า GroupDocs.Search for Java

ขั้นแรก ให้เพิ่มรีโพซิทอรี Maven ของ GroupDocs.Search และ dependency ลงใน pom.xml ของโปรเจกต์ของคุณ. ขั้นตอนนี้ทำให้ไลบรารีพร้อมใช้งานใน classpath.

การตั้งค่า Maven
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>

สำหรับผู้ที่ต้องการดาวน์โหลดโดยตรง คุณสามารถรับเวอร์ชันล่าสุดจาก GroupDocs.Search for Java releases.

การรับใบอนุญาต
เพื่อใช้ GroupDocs.Search ในการผลิต ให้รับใบอนุญาตแบบทดลองหรือแบบถาวรจากเว็บไซต์อย่างเป็นทางการ. ใบอนุญาตทดลองไม่มีข้อจำกัดสำหรับการพัฒนาและการทดสอบ.

วิธีสร้างดัชนี java ด้วยการตั้งค่าที่กำหนดเอง

Index เป็นคลาสหลักที่แสดงถึงคอลเลกชันของเอกสารที่สามารถค้นหาได้.
IndexSettings กำหนดตัวเลือกต่าง ๆ เช่นการบีบอัดสำหรับดัชนี.
CompressionLevel กำหนดระดับการบีบอัดที่ใช้กับข้อความที่จัดเก็บ.

โหลดอ็อบเจ็กต์ Index พร้อมเปิดใช้งานการบีบอัด, ชี้ไปที่โฟลเดอร์, และเพิ่มไฟล์ที่รองรับทั้งหมด. ย่อหน้าตอบโดยตรงนี้บอกคุณอย่างชัดเจนว่าจะทำอย่างไร: สร้างอินสแตนซ์ของ Index ด้วย new Index("indexFolder", new IndexSettings().setCompressionLevel(CompressionLevel.High)), จากนั้นเรียก index.add("documentsFolder", true) เพื่อทำดัชนีไฟล์ที่รองรับทั้งหมดแบบเรียกซ้ำ. โหมดบีบอัดสูงจะลดขนาดบนดิสก์ได้ถึง 70 % ในขณะที่ยังคงความเร็วการค้นหาเร็ว.

การสร้างดัชนีเป็นพื้นฐานสำหรับแอปพลิเคชันที่ขับเคลื่อนด้วยการค้นหา. ตัวอย่างด้านล่างจะพาคุณผ่านกระบวนการ, อธิบายแต่ละการตั้งค่า, และแสดงวิธีตรวจสอบว่าดัชนีถูกสร้างสำเร็จ.

การสร้างดัชนีและการทำดัชนีเอกสาร

ภาพรวม

Index class เป็นส่วนประกอบหลักที่แสดงถึงคอลเลกชันของเอกสารที่สามารถค้นหาได้. มันเก็บ inverted indexes, term dictionaries, และ metadata ที่จำเป็นสำหรับการค้นหาแบบเร็ว.

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

คำอธิบาย

  • Index Settings: เราเปิดใช้ high compression สำหรับการจัดเก็บข้อความ, ปรับปรุงการใช้พื้นที่ดิสก์โดยไม่ลดทอนความเร็วของการค้นหา.
  • Adding Documents: เมธอด index.add() adds documents to index, สแกนโฟลเดอร์แบบเรียกซ้ำและจัดการรูปแบบที่รองรับทั้งหมดโดยอัตโนมัติ.

วิธีส่งออกข้อความเป็นไฟล์, สตรีม, สตริง, และรูปแบบเชิงโครงสร้าง

หลังจากทำดัชนีแล้ว คุณมักต้องการสกัดข้อความดิบหรือข้อความที่จัดรูปแบบของเอกสาร. GroupDocs.Search มีอะแดปเตอร์สี่ประเภทที่ให้คุณเขียนเนื้อหาที่สกัดออกไปยังไฟล์, สตรีมในหน่วยความจำ, Java String, หรือโมเดลอ็อบเจ็กต์เชิงโครงสร้าง.

การส่งออกข้อความเอกสารไปยังไฟล์

FileOutputAdapter เขียนข้อความเอกสารที่สกัดไปยังไฟล์ในรูปแบบที่เลือก.

ภาพรวม

FileOutputAdapter เขียนข้อความที่สกัดในรูปแบบที่เลือก (HTML, plain text, ฯลฯ) โดยตรงไปยังไฟล์บนดิสก์. สิ่งนี้เป็นประโยชน์สำหรับการสร้างรายงานที่มนุษย์อ่านได้หรือส่งต่อไปยัง pipeline การประมวลผลต่อไป.

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

คำอธิบาย

  • FileOutputAdapter: แปลงข้อความของเอกสารที่ทำดัชนีเป็น HTML และเขียนไปยังเส้นทางไฟล์ที่ระบุ, รักษาการจัดรูปแบบพื้นฐานเช่นหัวเรื่องและตาราง.

การส่งออกข้อความเอกสารไปยังสตรีม

StreamOutputAdapter สตรีมข้อความเอกสารที่สกัดเข้าไปใน ByteArrayOutputStream โดยไม่ต้องสร้างไฟล์ชั่วคราว.

ภาพรวม

เมื่อคุณต้องการเนื้อหาเพียงชั่วคราว—เช่น ส่งผ่าน HTTP หรือฝังในการตอบสนองเว็บ—ใช้ StreamOutputAdapter. มันสตรีมข้อความเข้าไปใน ByteArrayOutputStream, หลีกเลี่ยงค่าใช้จ่ายของการสร้างไฟล์ชั่วคราว.

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

คำอธิบาย

  • StreamOutputAdapter: สตรีมข้อความของเอกสารเข้าไปใน ByteArrayOutputStream, ทำให้จัดการได้อย่างยืดหยุ่นโดยไม่ต้องเข้าถึงระบบไฟล์.

การส่งออกข้อความเอกสารเป็นสตริง

StringOutputAdapter จับข้อความทั้งหมดของเอกสารไว้ในอ็อบเจ็กต์ String เดียว.

ภาพรวม

สำหรับการบันทึกอย่างรวดเร็ว, การดีบัก, หรือการแสดงผล UI, StringOutputAdapter จับข้อความทั้งหมดของเอกสารไว้ในอ็อบเจ็กต์ 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();
        }
    }
}

คำอธิบาย

  • StringOutputAdapter: จับข้อความของเอกสารใน String, ทำให้สามารถฝังลงในบันทึก, การแสดงผลคอนโซล, หรือคอมโพเนนต์ UI ได้ง่าย.

การส่งออกข้อความเอกสารเป็นรูปแบบเชิงโครงสร้าง

StructuredOutputAdapter คืนโมเดลอ็อบเจ็กต์ที่มีความละเอียดสูงซึ่งประกอบด้วยย่อหน้า, ตาราง, และเมตาดาต้าตามกำหนด.

ภาพรวม

StructuredOutputAdapter คืนโมเดลอ็อบเจ็กต์ที่มีความละเอียดสูงซึ่งประกอบด้วยย่อหน้า, ตาราง, และเมตาดาต้าตามกำหนด. รูปแบบนี้เหมาะอย่างยิ่งสำหรับ pipeline การประมวลผลภาษาธรรมชาติ (NLP) หรือการสกัดข้อมูลต่อไป.

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

คำอธิบาย

  • StructuredOutputAdapter: สกัดข้อความของเอกสารเป็นรูปแบบ structured text extraction, ทำให้สามารถวิเคราะห์อย่างละเอียด, สกัดฟิลด์, และรวมเข้ากับ pipeline การเรียนรู้ของเครื่อง.

ปัญหาทั่วไปและวิธีแก้

ปัญหาสาเหตุวิธีแก้
ไม่สามารถสร้างดัชนีเส้นทางโฟลเดอร์ไม่ถูกต้องหรือไม่มีสิทธิ์การเขียนตรวจสอบว่า indexFolder มีอยู่และแอปพลิเคชันมีสิทธิ์การเขียน
ไม่มีเอกสารที่ส่งคืนindex.add() ไม่ได้ถูกเรียกหรือโฟลเดอร์ต้นทางผิดตรวจสอบว่า documentsFolder ชี้ไปยังไดเรกทอรีที่ถูกต้องและมีไฟล์ที่รองรับ
ไฟล์ผลลัพธ์ว่างเส้นทางของอะแดปเตอร์ผลลัพธ์ไม่ถูกต้องหรือไม่มีไดเรกทอรีสร้างไดเรกทอรีเป้าหมาย (YOUR_OUTPUT_DIRECTORY) ก่อนรัน
การใช้หน่วยความจำพุ่งสูงกับไฟล์ขนาดใหญ่โหลดไฟล์ทั้งหมดเข้าสู่หน่วยความจำใช้ StreamOutputAdapter เพื่อประมวลผลข้อมูลแบบเพิ่มทีละส่วน

คำถามที่พบบ่อย

Q: ฉันสามารถใช้ GroupDocs.Search กับภาษา JVM อื่น ๆ เช่น Kotlin หรือ Scala ได้หรือไม่?
A: ใช่, ไลบรารีนี้เป็น Java แท้และทำงานร่วมกับภาษา JVM ใด ๆ อย่างราบรื่น.

Q: การบีบอัดส่งผลต่อความเร็วการค้นหาอย่างไร?
A: การบีบอัดสูงลดการใช้พื้นที่ดิสก์ได้ถึง 70 % และเพิ่มภาระการใช้ CPU เพียงเล็กน้อยระหว่างการทำดัชนี; ความหน่วงของการค้นหายังคงอยู่ต่ำกว่า 100 ms สำหรับงานทั่วไป.

Q: สามารถอัปเดตดัชนีที่มีอยู่โดยไม่ต้องสร้างใหม่ได้หรือไม่?
A: ได้แน่นอน. ใช้ index.add() สำหรับไฟล์ใหม่และ index.remove() เพื่อลบไฟล์ที่ล้าสมัย, ทำให้สามารถอัปเดตแบบเพิ่มส่วนได้.

Q: รูปแบบผลลัพธ์ใดที่เหมาะสมที่สุดสำหรับ pipeline การประมวลผลภาษาธรรมชาติ?
A: ผลลัพธ์ PlainText จากอะแดปเตอร์ structured text extraction ให้เนื้อหาที่สะอาดและไม่ขึ้นกับภาษา เหมาะอย่างยิ่งสำหรับงาน NLP.

Q: ฉันต้องการใบอนุญาตสำหรับการพัฒนาและการทดสอบหรือไม่?
A: ใบอนุญาตทดลองฟรีเพียงพอสำหรับการพัฒนาและการประเมิน; การใช้งานในสภาพแวดล้อมการผลิตต้องมีใบอนุญาตที่ซื้อแล้ว.

สรุป

ตอนนี้คุณมี workflow ที่ครบถ้วนและพร้อมสำหรับการผลิตสำหรับ how to create index, เพิ่มเอกสาร, และสกัดข้อความของพวกมันในทุกรูปแบบที่คุณอาจต้องการ. เริ่มต้นด้วยการกำหนดค่า Index พร้อมการบีบอัด, เพิ่มคอลเลกชันเอกสารของคุณ, และเลือกอะแดปเตอร์ผลลัพธ์ที่เหมาะสมสำหรับสถานการณ์ต่อไป—ไม่ว่าจะเป็นการสร้างรายงาน HTML, ป้อนข้อมูลให้โมเดล NLP, หรือสตรีมเนื้อหาไปยังไคลเอนต์เว็บ. ทดลองใช้ API การอัปเดตแบบเพิ่มส่วนเพื่อให้ดัชนีของคุณสดใหม่โดยไม่ต้องสร้างใหม่ที่มีค่าใช้จ่ายสูง, แล้วคุณจะได้สัมผัสการค้นหาเร็วและเชื่อถือได้ในทุกคลังเอกสาร.


อัปเดตล่าสุด: 2026-06-27
ทดสอบด้วย: GroupDocs.Search 25.4 for Java
ผู้เขียน: GroupDocs

บทแนะนำที่เกี่ยวข้อง