สกัดข้อความ PDF ด้วย Java – สร้างดัชนีด้วย GroupDocs.Search

ในคู่มือเชิงปฏิบัตินี้ คุณจะค้นพบ วิธีสกัดข้อความ pdf ด้วย java จากไฟล์ PDF, ทำการ serialize เนื้อหาที่สกัด, และสร้างดัชนีที่ค้นหาได้ด้วยประสิทธิภาพสูง ไม่ว่าคุณจะสร้างฐานความรู้ภายใน, พอร์ทัลค้นหาเอกสัญญา, หรือเครื่องมือค้นหาที่กำหนดเอง ขั้นตอนต่อไปนี้จะพาคุณผ่านทุกอย่าง—ตั้งแต่การดึงข้อความออกจาก PDF ไปจนถึงการรันการค้นหาเต็มข้อความที่ทรงพลัง มาเริ่มกันและดูว่าทำไม GroupDocs.Search ทำให้กระบวนการทั้งหมดราบรื่นและขยายได้

คำตอบเร็ว

index.search method ทำการรัน query กับดัชนีที่สร้างขึ้นและคืนรายการเอกสารที่ตรงกันพร้อมคะแนนความเกี่ยวข้อง.

  • วัตถุประสงค์หลักคืออะไร? เพื่อสกัดข้อความ pdf ด้วย java จากไฟล์ PDF และสร้างดัชนีเอกสารที่ค้นหาได้ด้วย GroupDocs.Search.
  • เวอร์ชันของไลบรารีคืออะไร? GroupDocs.Search 25.4 (or the latest release).
  • ต้องการไลเซนส์หรือไม่? การทดลองใช้ฟรีทำงานได้สำหรับการพัฒนา; จำเป็นต้องมีไลเซนส์เต็มสำหรับการใช้งานจริง.
  • ฉันสามารถทำดัชนี PDF ได้หรือไม่? ได้—สกัดข้อความ PDF แล้วเพิ่มลงในดัชนี.
  • ฉันจะรันการค้นหาอย่างไร? ใช้เมธอด index.search(query) หลังจากเพิ่มข้อมูล.

ดัชนีเอกสารคืออะไร?

ดัชนีเอกสารคือคอลเลกชันที่มีโครงสร้างของคำที่สามารถค้นหาได้ซึ่งสกัดจากไฟล์ของคุณ มันแมปแต่ละคำไปยังเอกสารที่ปรากฏคำนั้น ทำให้การค้นหาเต็มข้อความอย่างรวดเร็วทั่วคลังข้อมูลขนาดใหญ่และลดเวลาในการค้นหาจากหลายนาทีเป็นมิลลิวินาที พร้อมสนับสนุนฟีเจอร์การจัดอันดับและความเกี่ยวข้อง.

ทำไมต้องใช้ GroupDocs.Search สำหรับ Java?

GroupDocs.Search รองรับ 50+ input and output formats, สามารถทำดัชนี millions of documents ได้โดยไม่ต้องโหลดไฟล์ทั้งหมดเข้าสู่หน่วยความจำ, และมี rich query language ที่รองรับตัวดำเนินการ Boolean, wildcard, และ proximity. ความสามารถเหล่านี้ทำให้เหมาะสำหรับโซลูชันการค้นหาระดับองค์กร นอกจากนี้ยังมีการตรวจจับภาษาในตัว, stemming, และตัววิเคราะห์ที่ปรับแต่งได้เพื่อปรับปรุงความแม่นยำของการค้นหาสำหรับเนื้อหาหลายภาษา.

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

  • GroupDocs.Search for Java (Version 25.4 หรือใหม่กว่า).
  • Java Development Kit (JDK) ที่เข้ากันได้กับเวอร์ชัน GroupDocs ของคุณ.
  • IDE เช่น IntelliJ IDEA หรือ Eclipse.
  • Maven สำหรับการจัดการ dependencies.

การตั้งค่า GroupDocs.Search สำหรับ Java

ขั้นแรก ให้เพิ่มไลบรารีลงในโปรเจกต์ของคุณ.

Maven Setup
ใส่ส่วนต่อไปนี้ในไฟล์ pom.xml ของคุณ:

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

Direct Download
หรือดาวน์โหลดเวอร์ชันล่าสุดจาก GroupDocs.Search for Java releases.

การรับไลเซนส์

  • Free Trial – ทดสอบคุณสมบัติทั้งหมดด้วยไลเซนส์ชั่วคราว.
  • Purchase – รับการเข้าถึงเต็มรูปแบบและการสนับสนุนแบบ priority.

วิธีสกัดข้อความจาก PDF (และเอกสารอื่นๆ)

โหลด PDF ของคุณ (หรือเอกสารที่รองรับ) ด้วยคลาส Extractor, กำหนดค่าตัวเลือกการสกัด, และเรียก extractText() การเรียกนี้หนึ่งบรรทัดจะคืนข้อความดิบหรือรูปแบบพร้อมสำหรับการทำดัชนี.

คลาส Extractor เป็นส่วนประกอบหลักของ GroupDocs.Search ที่อ่านเอกสารและสร้างข้อความแบบ plain หรือ formatted.

// ```java
String documentPath = "YOUR_DOCUMENT_DIRECTORY/Lorem ipsum.pdf";
Extractor extractor = new Extractor();
Document document = Document.createFromFile(documentPath);
// ```java
ExtractionOptions extractionOptions = new ExtractionOptions();
extractionOptions.setUseRawTextExtraction(false); // Extract with formatting
ExtractedData extractedData = extractor.extract(document, extractionOptions);

เคล็ดลับ: ตั้งค่า setUseRawTextExtraction(true) หากคุณต้องการข้อความ plain โดยไม่มีการจัดรูปแบบ.

วิธีทำ serialization ข้อมูลที่สกัด

Serialization แปลงอ็อบเจ็กต์ข้อความที่สกัดเป็นอาร์เรย์ของไบต์ ทำให้คุณสามารถเก็บไว้บนดิสก์หรือส่งผ่านเครือข่ายเพื่อทำดัชนีในภายหลัง.

ยูทิลิตี้ SerializationUtil ให้เมธอดสเตติกเพื่อแปลงอ็อบเจ็กต์เป็นสตรีมของไบต์และกลับคืน.

// ```java
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
extractedData.serialize(outputStream);
byte[] serializedArray = outputStream.toByteArray();

วิธีทำ deserialization ข้อมูลที่สกัด

เมื่อคุณพร้อมสร้างดัชนี, ทำการ deserialize อาร์เรย์ไบต์ที่เก็บไว้ก่อนหน้านี้กลับเป็นอ็อบเจ็กต์การสกัดเดิม.

เมธอด deserialize คืนสถานะที่แม่นยำของผลลัพธ์การสกัด, รับประกันว่าไม่มีการสูญเสียข้อมูลระหว่างเซสชัน.

// ```java
ByteArrayInputStream inputStream = new ByteArrayInputStream(serializedArray);
ExtractedData deserializedData = ExtractedData.deserialize(inputStream);

วิธีสร้างดัชนีเอกสาร

สร้างอ็อบเจ็กต์ Index, ระบุโฟลเดอร์จัดเก็บ, และกำหนดค่าตัวเลือกการทำดัชนีเช่น term vectors และการจัดการ stop‑words.

คลาส Index แสดงถึงคอนเทนเนอร์ที่สามารถค้นหาได้ซึ่งเก็บคำทั้งหมด, การอ้างอิงเอกสาร, และเมตาดาต้า.

// ```java
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/SeparateDataExtraction";
com.groupdocs.search.Index index = new com.groupdocs.search.Index(indexFolder);

วิธีเพิ่มข้อมูลลงดัชนีและทำการค้นหา

เพิ่มผลลัพธ์การสกัดที่ทำ deserialization ลงในดัชนีด้วย index.add(), จากนั้น query ด้วย index.search() เพื่อผลลัพธ์ทันที.

เมธอด add ลงทะเบียนคำของเอกสารในดัชนี, ส่วน search ทำการรัน query กับคำนั้นๆ.

// ```java
ExtractedData[] dataToIndex = new ExtractedData[] { deserializedData };
index.add(dataToIndex, new IndexingOptions());
// ```java
String query = "ipsum";
SearchResult result = index.search(query);

เคล็ดลับระดับมืออาชีพ: ใช้ index.search("your query", SearchOptions) เพื่อปรับแต่งการจัดอันดับความเกี่ยวข้อง.

กรณีการใช้งานทั่วไป

  1. Document Management Systems – ค้นหาเอกสัญญา, ใบแจ้งหนี้, หรือนโยบายได้อย่างรวดเร็ว.
  2. Content‑Based Search Engines – ให้พลังกับฐานความรู้ภายในด้วยความสามารถการค้นหาเต็มข้อความ java.
  3. Data Archiving Solutions – ทำดัชนีบันทึกประวัติสำหรับการดึงข้อมูลทันที.

พิจารณาด้านประสิทธิภาพ

เมธอด setStoreTermVectors(boolean) กำหนดว่าจะแสดง term vectors ในดัชนีหรือไม่, ซึ่งส่งผลต่อขนาดดัชนีและประสิทธิภาพของ query.

  • Memory Management: เพิ่มขนาด heap ของ JVM (เช่น -Xmx4g) เมื่อประมวลผลชุดข้อมูลที่ใหญ่กว่า 500 MB.
  • Indexing Options: ปิด term vectors (setStoreTermVectors(false)) เพื่อลดขนาดดัชนีได้ถึง 30 %.
  • Regular Updates: รักษา GroupDocs.Search ให้เป็นเวอร์ชันล่าสุด; แต่ละรีลีสย่อยมีการปรับปรุงความเร็วเฉลี่ย 10‑15 %.

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

Q: ฉันจะจัดการไฟล์ PDF ขนาดใหญ่มากอย่างมีประสิทธิภาพได้อย่างไร?
A: สตรีมไฟล์โดยใช้ Extractor และประมวลผลเป็นชิ้นส่วน; เพิ่มขนาด heap ของ JVM หากจำเป็น.

Q: ฉันสามารถปรับแต่งไวยากรณ์ของ query การค้นหาได้หรือไม่?
A: ได้—GroupDocs.Search รองรับตัวดำเนินการ Boolean, wildcards, และการค้นหา proximity.

Q: ควรทำอย่างไรหากการทำ serialization ล้มเหลว?
A: ตรวจสอบว่าอ็อบเจ็กต์ทั้งหมด implements Serializable และจับ IOException เพื่อบันทึกรายละเอียด.

Q: สามารถทำดัชนีเฉพาะส่วนของเอกสารได้หรือไม่?
A: แน่นอน—กำหนดค่า ExtractionOptions เพื่อกรองหน้า หรือส่วนก่อนทำดัชนี.

Q: ฉันจะอัปเกรดเป็นเวอร์ชัน GroupDocs.Search ที่ใหม่กว่าอย่างไร?
A: อัปเดตหมายเลขเวอร์ชันใน pom.xml ของคุณและรัน mvn clean install; ตรวจสอบคู่มือการย้ายเพื่อดูการเปลี่ยนแปลงที่ทำให้เกิดปัญหา.

แหล่งข้อมูล


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

บทเรียนที่เกี่ยวข้อง