การจัดการผลการค้นหาอย่างมีประสิทธิภาพถือเป็นพื้นฐานของระบบค้นหาเอกสารที่มีประสิทธิภาพ และการรู้วิธีตีความและใช้ผลลัพธ์เหล่านี้สามารถปรับปรุงการตัดสินใจที่ขับเคลื่อนด้วยข้อมูลได้อย่างมาก ในคู่มือนี้ เราจะเจาะลึกถึงวิธีการทำงานกับผลการค้นหาโดยใช้ Java ตั้งแต่การสร้างที่เก็บข้อมูลดัชนีไปจนถึงการตั้งค่าพารามิเตอร์การค้นหาแบบคลุมเครือ บทช่วยสอนนี้เสนอวิธีการปฏิบัติจริงที่ตรงไปตรงมาในการจัดการคำค้นหาและผลลัพธ์ที่เกี่ยวข้อง ไม่ว่าคุณจะวิเคราะห์การจับคู่คำง่ายๆ หรือวลีที่ซับซ้อนกว่านั้น วิธีนี้จะช่วยให้คุณประมวลผลผลลัพธ์ได้อย่างละเอียดและระบุรูปแบบที่มีค่าได้ เมื่ออ่านจบ คุณจะเชี่ยวชาญในวิธีดึงผลการค้นหาใน Java และนำไปใช้ในกรณีการใช้งานต่างๆ
ขั้นตอนการทำงานกับผลการค้นหาโดยใช้ Java
- เพิ่มไลบรารี GroupDocs.Search for Java ลงในโปรเจ็กต์ของคุณเพื่อทำงานกับผลการค้นหา
- สร้างวัตถุดัชนีโดยใช้คลาส Index และระบุตำแหน่งโฟลเดอร์สำหรับจัดเก็บดัชนี
- ใช้เมธอด Index.add เพื่อสร้างดัชนีเอกสารจากโฟลเดอร์ที่กำหนด
- สร้างอินสแตนซ์ SearchOptions และเปิดใช้งานการค้นหาแบบฟัซซีโดยเรียก FuzzySearch.setEnabled(true)
- ตั้งค่าความแตกต่างที่อนุญาตสูงสุด (เช่น 3) ด้วยวิธี setFuzzyAlgorithm
- เรียกใช้เมธอด Index.search เพื่อค้นหาเอกสารที่มีคำหรือวลีที่ระบุ พร้อมด้วย SearchOptions ที่กำหนดค่าไว้
- แสดงจำนวนเอกสารที่พบโดยใช้เมธอด getDocumentCount และจำนวนครั้งทั้งหมดของเงื่อนไขการค้นหาโดยใช้เมธอด getOccurrenceCount
- ทำซ้ำผ่านผลลัพธ์การค้นหาโดยใช้เมธอด getFoundDocument และสำหรับเอกสารแต่ละฉบับ ให้แสดงเส้นทางไฟล์และจำนวนการเกิดขึ้น
- สำหรับเอกสารแต่ละฉบับ ให้วนซ้ำผ่านคอลเลกชัน FoundDocumentField และแสดงรายละเอียด เช่น ชื่อฟิลด์ จำนวนการเกิดขึ้น เงื่อนไขที่พบ และวลี
ในการจัดการผลการค้นหาอย่างมีประสิทธิภาพ ขั้นตอนแรกคือการสร้างที่เก็บดัชนีสำหรับเอกสารของคุณ โดยใช้โค้ดสั้นๆ ที่ให้มา ดัชนีจะถูกสร้างขึ้นในโฟลเดอร์ที่กำหนด และเอกสารจากโฟลเดอร์อื่นจะถูกเพิ่มลงในดัชนีนี้ จากนั้น ตัวเลือกการค้นหาจะถูกกำหนดค่าเพื่อเปิดใช้งานการค้นหาแบบคลุมเครือ ซึ่งช่วยให้สามารถจับคู่ได้อย่างยืดหยุ่นด้วยเกณฑ์ที่กำหนดไว้สำหรับความแตกต่าง การกำหนดค่านี้รองรับการค้นหาคำเช่น Einstein หรือวลีเช่น Theory of Relativity โดยใช้ขั้นตอนวิธีที่ซับซ้อน หลังจากดำเนินการค้นหาแล้ว ผลลัพธ์จะถูกเรียกค้นผ่านอ็อบเจ็กต์ SearchResult จำนวนเอกสารที่ตรงกับคำค้นและจำนวนการเกิดขึ้นจะถูกแสดง ข้อมูลโดยละเอียดสำหรับแต่ละเอกสารจะถูกแยกออกมา รวมถึงเส้นทางไฟล์และการเกิดขึ้นของคำ ด้วยการวนซ้ำผ่านฟิลด์ที่พบในแต่ละเอกสาร คุณสามารถระบุฟิลด์เฉพาะที่มีการจับคู่ และวิเคราะห์คำและวลีพร้อมกับความถี่ของฟิลด์เหล่านั้นได้ โค้ดด้านล่างแสดงวิธีการเข้าถึงผลการค้นหาดัชนีด้วย Java ซึ่งให้มุมมองที่เป็นระเบียบของข้อมูลที่เรียกค้นมา
โค้ดสำหรับทำงานกับผลการค้นหาโดยใช้ Java
import com.groupdocs.search.Index; | |
import com.groupdocs.search.licenses.License; | |
import com.groupdocs.search.options.SearchOptions; | |
import com.groupdocs.search.options.TableDiscreteFunction; | |
import com.groupdocs.search.results.FoundDocument; | |
import com.groupdocs.search.results.FoundDocumentField; | |
import com.groupdocs.search.results.SearchResult; | |
public class WorkwithSearchResultsUsingJava { | |
public static void main(String[] args) throws Exception { | |
// Apply the license to remove the restrictions | |
// imposed by the Search library | |
License license = new License(); | |
license.setLicense("GroupDocs.Search.lic"); | |
// The path where the index will be stored | |
String indexFolder = "c:\\MyIndex\\"; | |
// The folder containing the documents you want to search | |
String documentsFolder = "c:\\MyDocuments\\"; | |
// Creating an index in the specified folder | |
Index index = new Index(indexFolder); | |
// Indexing documents from the specified folder | |
index.add(documentsFolder); | |
// Creating search options | |
SearchOptions options = new SearchOptions(); | |
options.getFuzzySearch().setEnabled(true); // Enabling the fuzzy search | |
options.getFuzzySearch().setFuzzyAlgorithm(new TableDiscreteFunction(3)); // Setting the maximum number of differences to 3 | |
// Search for documents containing the word 'Einstein' or the phrase 'Theory of Relativity' | |
SearchResult result = index.search("Einstein OR \"Theory of Relativity\"", options); | |
// Printing the result | |
System.out.println("Documents: " + result.getDocumentCount()); | |
System.out.println("Total occurrences: " + 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()); | |
for (FoundDocumentField field : document.getFoundFields()) { | |
System.out.println("\t\tField: " + field.getFieldName()); | |
System.out.println("\t\tOccurrences: " + document.getOccurrenceCount()); | |
// Printing found terms | |
if (field.getTerms() != null) { | |
for (int k = 0; k < field.getTerms().length; k++) { | |
System.out.println("\t\t\t" + field.getTerms()[k] + " - " + field.getTermsOccurrences()[k]); | |
} | |
} | |
// Printing found phrases | |
if (field.getTermSequences() != null) { | |
for (int k = 0; k < field.getTermSequences().length; k++) { | |
String[] terms = field.getTermSequences()[k]; | |
String sequence = ""; | |
for (String term : terms) { | |
sequence += term + " "; | |
} | |
System.out.println("\t\t\t" + sequence + " - " + field.getTermSequencesOccurrences()[k]); | |
} | |
} | |
} | |
} | |
} | |
} |
การจัดการและวิเคราะห์ผลการค้นหาอย่างเหมาะสมถือเป็นสิ่งสำคัญสำหรับการดึงศักยภาพทั้งหมดจากข้อมูลที่สร้างดัชนี กระบวนการนี้ขยายขอบเขตไปมากกว่าแค่การดึงเอกสาร แต่ยังรวมถึงการวิเคราะห์การเกิดขึ้นของคำ การระบุการจับคู่ภายในฟิลด์เฉพาะ และการตรวจสอบรูปแบบวลี วิธีการที่อธิบายไว้ที่นี่ช่วยให้คุณสามารถตรวจสอบผลลัพธ์ได้อย่างละเอียดและเป็นระเบียบ ซึ่งจะช่วยให้ได้ข้อมูลเชิงลึกที่ลึกซึ้งยิ่งขึ้น นอกจากนี้ ความเข้ากันได้ข้ามแพลตฟอร์มของไลบรารียังรับประกันการบูรณาการที่ราบรื่นในระบบและสภาพแวดล้อมที่แตกต่างกัน เพิ่มความยืดหยุ่นสำหรับงานที่เกี่ยวข้องกับการค้นหา ด้วยการเชี่ยวชาญเทคนิคนี้ คุณจะสามารถ จัดการผลการค้นหาใน Java ได้อย่างมีประสิทธิภาพ และนำไปประยุกต์ใช้กับกรณีการใช้งานที่หลากหลาย ตั้งแต่การวิเคราะห์ข้อมูลไปจนถึงการดึงเอกสารแบบเรียลไทม์
ก่อนหน้านี้ เราได้ให้คำแนะนำโดยละเอียดเกี่ยวกับการสร้างรายงานการค้นหาโดยใช้ Java หากต้องการทำตามขั้นตอนโดยละเอียด โปรดอ่านบทความโดยละเอียดของเราเกี่ยวกับวิธีการ สร้างรายงานการค้นหาโดยใช้ Java