KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > killingar > forum > search > AreaIndexer


1 /* Copyright 2000-2005 Anders Hovmöller
2  *
3  * The person or persons who have associated their work with
4  * this document (the "Dedicator") hereby dedicate the entire
5  * copyright in the work of authorship identified below (the
6  * "Work") to the public domain.
7  *
8  * Dedicator makes this dedication for the benefit of the
9  * public at large and to the detriment of Dedicator's heirs
10  * and successors. Dedicator intends this dedication to be an
11  * overt act of relinquishment in perpetuity of all present
12  * and future rights under copyright law, whether vested or
13  * contingent, in the Work. Dedicator understands that such
14  * relinquishment of all rights includes the relinquishment of
15  * all rights to enforce (by lawsuit or otherwise) those
16  * copyrights in the Work.
17  *
18  * Dedicator recognizes that, once placed in the public
19  * domain, the Work may be freely reproduced, distributed,
20  * transmitted, used, modified, built upon, or otherwise
21  * exploited by anyone for any purpose, commercial or non-
22  * commercial, and in any way, including by methods that have
23  * not yet been invented or conceived.
24  */

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 JavaDoc;
34 import java.io.IOException JavaDoc;
35 import java.io.FileReader JavaDoc;
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 JavaDoc
46     {
47         mgr = in;
48         areamgr = (AreaManager)mgr.getManager(AreaManager.class.getName());
49     }
50
51     public void index(File JavaDoc indexDir, long areaID) throws Exception JavaDoc
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 JavaDoc
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