การค้นหาข้อความแบบเต็มเป็นวิธีการค้นหาข้อความ/ข้อความค้นหาภายในชุดเอกสาร วิธีนี้จะค้นหาอินสแตนซ์ทั้งหมดของคำ/วลีอย่างรวดเร็ว และทำงานโดยใช้ดัชนีข้อความ ในบทความนี้ เราจะเรียนรู้วิธีการค้นหาข้อความแบบเต็มในเอกสารโดยใช้โปรแกรมโดยใช้ 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
มีสองขั้นตอนในการค้นหาภายในไฟล์ที่จัดเก็บไว้ในโฟลเดอร์
- การทำดัชนี
- ทำการค้นหา
ไฟล์ดัชนีโดยใช้ 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 ที่ได้รับโดยใช้โค้ดด้านบน
รับใบอนุญาต API ฟรี
คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อใช้ API โดยไม่มีข้อจำกัดในการประเมิน
บทสรุป
ในบทความนี้ เราได้เรียนรู้การค้นหาข้อความภายในเอกสารหลายๆ โฟลเดอร์ใน Java นอกจากนี้ เรายังพูดถึงวิธีการเน้นข้อความของผลการค้นหาในรูปแบบ HTML สำหรับไฟล์ MS Word, ไฟล์ TXT และไฟล์ PDF โดยใช้โปรแกรมโดยใช้ GroupDocs.Search for Java
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ API โดยใช้ เอกสารประกอบ มีตัวอย่างอีกมากมายที่ GitHub สำหรับข้อสงสัย ติดต่อเราผ่านทาง ฟอรัม