1 25 26 package net.killingar.forum.search; 27 28 import org.apache.lucene.index.IndexWriter; 29 import org.apache.lucene.analysis.standard.StandardAnalyzer; 30 import org.apache.lucene.document.Document; 31 import org.apache.lucene.document.Field; 32 33 import java.io.File ; 34 import java.io.IOException ; 35 import java.io.FileReader ; 36 37 import net.killingar.forum.internal.*; 38 import net.killingar.forum.internal.managers.*; 39 40 public class AreaIndexer 41 { 42 ForumManager mgr; 43 AreaManager areamgr; 44 45 public AreaIndexer(ForumManager in) throws Exception 46 { 47 mgr = in; 48 areamgr = (AreaManager)mgr.getManager(AreaManager.class.getName()); 49 } 50 51 public void index(File indexDir, long areaID) throws Exception 52 { 53 IndexWriter writer = new IndexWriter(indexDir, new StandardAnalyzer(), true); 54 indexArea(writer, areaID); 55 writer.close(); 56 } 57 58 private void indexArea(IndexWriter writer, long areaID) throws Exception 59 { 60 Message[] messages = areamgr.getMessages(areaID, true); 61 62 for (int i = 0; i < messages.length; i++) 63 { 64 Document doc = new Document(); 65 doc.add(Field.Text("contents", messages[i].getSubject())); 66 doc.add(Field.Text("contents", messages[i].getBody())); 67 doc.add(Field.Keyword("id", Long.toString(messages[i].getId()))); 68 writer.addDocument(doc); 69 } 70 } 71 } | Popular Tags |