Simple Searching for Thai documents with Lucene

public class SimpleSearcher {

public static void main(String[] args) throws CorruptIndexException, IOException, ParseException {

/* ประกาศสร้างตัวสืบค้นฐานดัชนี IndexSearcher */
IndexSearcher searcher = new IndexSearcher(
//โดยต้องชี้ไปที่ directory ที่สร้างไว้
FSDirectory.open(new File(“indexdir”)));

//keyword ที่ต้องการค้น
String keyword=”ข้อความ”;

/*
* นำ keyword ไปวิเคราะห์ ให้ตรงกับค่าที่ถูกสร้างเป็นดัชนี
* ซึ่งการสืบค้นนั้น จำเป็นต้องระบุ field ที่ต้องไปค้นเสมอ
* และต้องระบุตัววิเคราะห์ภาษาด้วย (Analyzer)
* สิ่งที่ได้จากขั้นตอนนี้ เรียก Query
*/
QueryParser qp = new QueryParser(
Version.LUCENE_30, “name”,
new ThaiAnalyzer()
);

Query query = qp.parse(keyword);

/*
* ในการสืบค้น ต้องใช้ Query มาค้นหาเอกสารที่อยู่ในฐานดัชนี
* method “search(1,2)” นี้
* 1 = Query
* 2 = จำนวนเอกสาร หรือ document ที่ต้องการ
* ซึ่งเรียกเอกสารที่คืนกลับมานี้ว่า TopDocs
* ในตัวอย่าง ต้องการ TopDocs ทั้งหมด 20 document
*/
TopDocs docs = searcher.search(query, 20);

/*
* การแจง document ที่ได้กลับมา สามารถทำได้ตามตัวอย่างนี้
*/
for(ScoreDoc sd:docs.scoreDocs){
Document doc = searcher.doc(sd.doc);
String name = doc.get(“name”);
String numb = doc.get(“number”);
System.out.println(name+” “+numb);
}

}

}

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

This site uses Akismet to reduce spam. Learn how your comment data is processed.