ทำงานกับผลการค้นหาโดยใช้ Java

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

ขั้นตอนการทำงานกับผลการค้นหาโดยใช้ Java

  1. เพิ่มไลบรารี GroupDocs.Search for Java ลงในโปรเจ็กต์ของคุณเพื่อทำงานกับผลการค้นหา
  2. สร้างวัตถุดัชนีโดยใช้คลาส Index และระบุตำแหน่งโฟลเดอร์สำหรับจัดเก็บดัชนี
  3. ใช้เมธอด Index.add เพื่อสร้างดัชนีเอกสารจากโฟลเดอร์ที่กำหนด
  4. สร้างอินสแตนซ์ SearchOptions และเปิดใช้งานการค้นหาแบบฟัซซีโดยเรียก FuzzySearch.setEnabled(true)
  5. ตั้งค่าความแตกต่างที่อนุญาตสูงสุด (เช่น 3) ด้วยวิธี setFuzzyAlgorithm
  6. เรียกใช้เมธอด Index.search เพื่อค้นหาเอกสารที่มีคำหรือวลีที่ระบุ พร้อมด้วย SearchOptions ที่กำหนดค่าไว้
  7. แสดงจำนวนเอกสารที่พบโดยใช้เมธอด getDocumentCount และจำนวนครั้งทั้งหมดของเงื่อนไขการค้นหาโดยใช้เมธอด getOccurrenceCount
  8. ทำซ้ำผ่านผลลัพธ์การค้นหาโดยใช้เมธอด getFoundDocument และสำหรับเอกสารแต่ละฉบับ ให้แสดงเส้นทางไฟล์และจำนวนการเกิดขึ้น
  9. สำหรับเอกสารแต่ละฉบับ ให้วนซ้ำผ่านคอลเลกชัน 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

 ไทย