การค้นหาข้อความแบบเต็มเป็นวิธีการค้นหาข้อความ/ข้อความค้นหาภายในชุดเอกสาร วิธีนี้จะค้นหาอินสแตนซ์ทั้งหมดของคำ/วลีอย่างรวดเร็ว และทำงานโดยใช้ดัชนีข้อความ ในบทความนี้ เราจะเรียนรู้วิธีการค้นหาข้อความแบบเต็มในเอกสารโดยใช้โปรแกรมโดยใช้ Java

ค้นหาข้อความแบบเต็ม

หลังจากนี้ คุณสามารถใช้เทคนิคการค้นหาต่างๆ และสร้างโซลูชันการค้นหาสำหรับเอกสารประมวลผลคำ สเปรดชีต งานนำเสนอ ไฟล์ HTML ไฟล์ PDF eBooks ข้อความอีเมล ไฟล์ ZIP และ รูปแบบเอกสาร อื่นๆ อีกมากมาย

หัวข้อต่อไปนี้ครอบคลุมด้านล่าง:

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

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

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

ดาวน์โหลดหรือกำหนดค่า

คุณสามารถดาวน์โหลดไฟล์ JAR ได้จาก ส่วนการดาวน์โหลด หรือเพียงรับที่เก็บและการกำหนดค่าการพึ่งพาล่าสุดสำหรับ 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>21.3</version> 
</dependency>

มีสองขั้นตอนในการค้นหาภายในไฟล์ที่จัดเก็บไว้ในโฟลเดอร์

  • การทำดัชนี
  • ทำการค้นหา

ไฟล์ดัชนีโดยใช้ Java

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

สองบรรทัดง่ายๆ ต่อไปนี้สร้างดัชนีและเพิ่มโฟลเดอร์เอกสารลงในดัชนี

Index index = new Index("indexingFolderPath");
index.add("documentsFolderPath");

หลังจากจัดทำดัชนีเอกสารหลายฉบับในรูปแบบเดียวกันหรือต่างกัน เช่น (Word, PDF, Excel และ HTML) เราสามารถดำเนินการต่อเพื่อประมวลผลคำค้นหาเฉพาะ (คำค้นหา “วาด”) บนเอกสารเหล่านั้น ต่อไปนี้เป็นขั้นตอนสำหรับวิธีการค้นหาข้อความในเอกสารหลายฉบับภายในโฟลเดอร์โดยใช้ Java:

  • ระบุโฟลเดอร์ต้นทางของเอกสารและโฟลเดอร์ดัชนี
  • สร้าง ดัชนี โดยใช้โฟลเดอร์ดัชนี
  • เพิ่มโฟลเดอร์ต้นทางลงในดัชนี
  • เตรียมสตริงแบบสอบถาม
  • ทำการค้นหาโดยใช้เมธอด search ของคลาส Index
  • สำรวจแต่ละผลการค้นหาสำหรับคุณสมบัติของเอกสารแต่ละรายการ

ซอร์สโค้ดต่อไปนี้ค้นหาข้อความใน Java ในเอกสารทั้งหมดของโฟลเดอร์ที่ให้มา

// ค้นหาข้อความที่ระบุในเอกสาร PDF, Word, Excel, HTML หลายไฟล์ในโฟลเดอร์โดยใช้ Java
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath");

// ค้นหาในดัชนีสำหรับข้อความที่ระบุ
SearchResult result = index.search("Draw");

for (int i = 0; i < result.getDocumentCount(); i++) {
    FoundDocument document = result.getFoundDocument(i);
    System.out.println("Document Path: " + document.getDocumentInfo().getFilePath());
    System.out.println("Occurrence : " + document.getOccurrenceCount());
}

เราจะได้เส้นทางของเอกสารและจำนวนครั้งของคำค้นหาที่เกิดขึ้นในเอกสารทั้งหมดที่มีโฟลเดอร์ที่ระบุ นี่คือภาพหน้าจอสำหรับการแสดงภาพ

เอาต์พุตข้อความค้นหาแบบเต็ม

เน้นผลการค้นหาข้อความในภาษาจาวา

ตอนนี้ มาทำการค้นหาข้อความแบบเต็มเดียวกัน และเน้นเหตุการณ์ทั้งหมดที่ตรงกับข้อความค้นหาของคุณ

ขั้นตอนต่อไปนี้แสดงวิธีเน้นข้อความในผลการค้นหา:

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

รหัสต่อไปนี้สร้างเอาต์พุต HTML พร้อมผลการค้นหาที่เน้นโดยใช้ Java

// เน้นผลการค้นหาข้อความแบบเต็มของเอกสารหลายรายการในโฟลเดอร์ใน Java
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath"); // Synchronous indexing documents from the specified folder

String query = "draw"; // Specify a search query
SearchResult result = index.search(query); // Searching in the index

for (int i = 0; i < result.getDocumentCount(); i++) 
{
    FoundDocument document = result.getFoundDocument(i);

    String path = "path/Highlighted-"+ i +".html";
    OutputAdapter outputAdapter = new FileOutputAdapter(path); 
    HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the highlighter
    index.highlight(document, highlighter); // Generates HTML formatted output document with highlighted search results
}

เราจะได้ไฟล์ HTML หลายไฟล์ออกมาเป็นผลลัพธ์ แต่ละไฟล์จะแสดงเนื้อหาของเอกสารที่แยกจากกัน (เช่น excel.xlsx, source.docx, target.docx) พร้อมเน้นข้อความ/คำค้นหา ด้านล่างนี้คือเอาต์พุต HTML ที่เน้นของไฟล์ DOCX, ไฟล์ TXT และไฟล์ PDF ที่ได้รับโดยใช้โค้ดด้านบน

เน้นผลการค้นหาข้อความแบบเต็มในเนื้อหาโดยใช้ Java

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

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

บทสรุป

ในบทความนี้ เราได้เรียนรู้การค้นหาข้อความภายในเอกสารหลายๆ โฟลเดอร์ใน Java นอกจากนี้ เรายังพูดถึงวิธีการเน้นข้อความของผลการค้นหาในรูปแบบ HTML สำหรับไฟล์ MS Word, ไฟล์ TXT และไฟล์ PDF โดยใช้โปรแกรมโดยใช้ GroupDocs.Search for Java

คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ API โดยใช้ เอกสารประกอบ มีตัวอย่างอีกมากมายที่ GitHub สำหรับข้อสงสัย ติดต่อเราผ่านทาง ฟอรัม

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