ค้นหาคำในรูปแบบ PDF โดยใช้ Java

คุณอาจต้องค้นหาข้อความเฉพาะจากเอกสาร Word หรือ PDF ในฐานะนักพัฒนา Java คุณสามารถค้นหาข้อความจากเอกสาร PDF โดยทางโปรแกรมได้ ในบทความนี้ คุณจะได้เรียนรู้วิธีค้นหาคำในเอกสาร PDF โดยใช้ Java

หัวข้อต่อไปนี้จะกล่าวถึง/ครอบคลุมในบทความนี้:

Java API สำหรับการค้นหาข้อความ

ฉันจะใช้ GroupDocs.Search for Java API เพื่อค้นหาในเอกสาร PDF ช่วยให้คุณสามารถดำเนินการค้นหาข้อความในรูปแบบเอกสารยอดนิยมทั้งหมด เช่น PDF, Word, Excel, PowerPoint และอื่นๆ อีกมากมาย คุณสามารถดึงข้อมูลที่ต้องการจากไฟล์ เอกสาร อีเมล และเอกสารสำคัญได้อย่างง่ายดายโดยใช้ API นี้ นอกจากนี้ยังช่วยให้คุณสร้างและรวมดัชนีหลายรายการได้ คุณสามารถใช้แบบสอบถามแบบง่าย บูลีน นิพจน์ปกติ (Regex) แบบคลุมเครือ และประเภทอื่นๆ เพื่อค้นหาผ่านดัชนีได้อย่างรวดเร็วและชาญฉลาด

ดาวน์โหลดและกำหนดค่า

คุณสามารถ ดาวน์โหลด JAR ของ API หรือเพียงเพิ่มการกำหนดค่า pom.xml ต่อไปนี้ในแอปพลิเคชัน Java ที่ใช้ Maven ของคุณเพื่อลองใช้ตัวอย่างโค้ดที่กล่าวถึงด้านล่าง

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-search</artifactId>
        <version>20.11</version> 
</dependency>

ค้นหาข้อความในรูปแบบ PDF โดยใช้ Java

คุณสามารถค้นหาข้อความหรือคำเฉพาะในเอกสาร PDF ของคุณได้อย่างง่ายดายโดยทำตามขั้นตอนง่ายๆ ที่ระบุไว้ด้านล่าง:

  • สร้าง ดัชนี
  • ระบุเส้นทางไปยังโฟลเดอร์ดัชนี
  • สมัครสมาชิก กิจกรรมดัชนี
  • เพิ่มไฟล์ลงในดัชนีโดยการเรียกเมธอด เพิ่ม
  • ทำการค้นหาโดยใช้วิธี ค้นหา
  • ใช้ SearchResult และพิมพ์สรุป
  • เน้นผลลัพธ์การค้นหาในผลลัพธ์โดยใช้เมธอด highlight

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการค้นหาคำจากเอกสาร PDF โดยใช้ Java

String indexFolder = "C:\\Index\\"; // Specify the path to the index folder
String documentsFolder = "C:\\Files\\"; // Specify the path to a folder containing documents to search

// สร้างดัชนีใหม่หรือ
// เปิดดัชนีที่มีอยู่
Index index = new Index(indexFolder);

// สมัครสมาชิกกิจกรรมดัชนี
index.getEvents().ErrorOccurred.add(new EventHandler<IndexErrorEventArgs>() {
    public void invoke(Object sender, IndexErrorEventArgs args) {
        System.out.println(args.getMessage()); // Writing error messages to the console
    }
});

// เพิ่มไฟล์พร้อมกัน
index.add(documentsFolder); // Synchronous indexing documents from the specified folder

// ดำเนินการค้นหา
String query = "elementum"; // Specify a search query
SearchResult result = index.search(query); // Searching in the index

// ใช้ผลการค้นหา
// กำลังพิมพ์ผลลัพธ์
System.out.println("Documents found: " + result.getDocumentCount());
System.out.println("Total occurrences found: " + result.getOccurrenceCount());
for (int i = 0; i < result.getDocumentCount(); i++) {
    FoundDocument document = result.getFoundDocument(i);
    System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
    System.out.println("\tOccurrences: " + document.getOccurrenceCount());
}

// เน้นเหตุการณ์ที่เกิดขึ้นในข้อความ
if (result.getDocumentCount() > 0) {
    FoundDocument document = result.getFoundDocument(0); // Getting the first found document
    String path = "C:\\Output\\Highlighted.html";
    OutputAdapter outputAdapter = new FileOutputAdapter(path); // Creating the output adapter to a file
    HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the HtmlHighlighter object
    index.highlight(document, highlighter); // Generating output HTML formatted document with highlighted search results

    System.out.println();
    System.out.println("Generated HTML file can be opened with Internet browser.");
    System.out.println("The file can be found by the following path:");
    System.out.println(Paths.get(path).toAbsolutePath().toString());
}

ตัวอย่างโค้ดข้างต้นจะต้องสร้างผลลัพธ์ต่อไปนี้:

Documents found: 1
Total occurrences found: 6
	Document: C:\Files\Lorem ipsum.pdf
	Occurrences: 6

Generated HTML file can be opened with Internet browser.
The file can be found by the following path:
C:\Output\Highlighted.html
ค้นหาคำในเอกสาร PDF โดยใช้ Java

ค้นหาคำในเอกสาร PDF โดยใช้ Java

เหตุการณ์ดัชนีและดัชนี

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

หากต้องการรับข้อมูลเกี่ยวกับข้อผิดพลาดในการจัดทำดัชนี ฉันได้สมัครเข้าร่วมกิจกรรม ErrorOccurred มันจะแสดงข้อผิดพลาดหากเกิดขึ้นระหว่างการจัดทำดัชนีไฟล์

เพิ่มไฟล์ลงในดัชนี

เพิ่ม วิธีการของชั้นดัชนีเพิ่มไฟล์หรือไฟล์ทั้งหมดในโฟลเดอร์หรือโฟลเดอร์ย่อยโดยเส้นทางที่แน่นอนหรือสัมพันธ์ เอกสารทั้งหมดบนเส้นทางที่กำหนดจะถูกจัดทำดัชนี

ดำเนินการค้นหา

คลาสดัชนีจัดเตรียมวิธีการ ค้นหา ต่างๆ เพื่อดำเนินการค้นหา คุณสามารถค้นหาด้วยคำสำคัญง่ายๆ หรือโดยการกำหนด SearchQuery

คลาส SearchResult ให้รายละเอียดของผลการค้นหาที่ตรงกับคำค้นหา วิธีการบางส่วนได้อธิบายไว้ที่นี่:

  • getOccurrenceCount() วิธีการส่งกลับจำนวนครั้งทั้งหมดที่พบ
  • เมธอด getDocumentCount() ระบุจำนวนเอกสารที่พบในดัชนี
  • getFoundDocument(int) วิธีการส่งกลับ FoundDocument
  • FoundDocument.getOccurrenceCount() วิธีการส่งกลับจำนวนครั้งที่พบในเอกสาร

เน้นผลการค้นหา

คลาส HtmlHighlighter อำนวยความสะดวกในการเน้นผลการค้นหาในข้อความเอกสารทั้งหมดที่จัดรูปแบบเป็น HTML

highlight วิธีการของชั้นดัชนีสร้างเอาท์พุท HTML ที่เน้นการเกิดขึ้นของคำที่พบ ดูรายละเอียดเพิ่มเติมเกี่ยวกับ “เน้นผลลัพธ์การค้นหา” ได้ในเอกสารประกอบ

รับใบอนุญาตฟรี

คุณสามารถลองใช้ API ได้โดยไม่มีข้อจำกัดในการประเมินโดยขอ ใบอนุญาตชั่วคราวฟรี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีค้นหาคำในเอกสาร PDF โดยใช้ Java คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ GroupDocs.Search สำหรับ Java API ได้โดยใช้ เอกสารประกอบ ในกรณีที่มีความคลุมเครือ โปรดติดต่อเราที่ ฟอรั่ม

ดูสิ่งนี้ด้วย