jforum中的 lucene

(1)通过JForumBaseServlet类中的startApplication方法,启动了ConfigLoader.startSearchIndexer();
(2)ConfigLoader类中的startSearchIndexer,执行了SearchFacade.init()
public static void startSearchIndexer()
{
SearchFacade.init();
}
(3)SearchFacade类,
主要是创建了静态类SearchManager;
执行了searchManager.init();
(4)接口类 interface SearchManager
class LuceneManager implements SearchManager
LuceneManager类:
创建了3个 类:
private LuceneSearch search;
private LuceneSettings settings;
private LuceneIndexer indexer;
这样在初始化的过程中,需要的类基本上都用到了。

(5)然后在类GenericPostDAO(主要负责帖子的创建、删除、更新)中
public int addNew(Post post)
{
try {
this.addNewPost(post);
this.addNewPostText(post);

// Search
SearchFacade.create(post);

return post.getId();
}
catch (Exception e) {
throw new DatabaseException(e);
}
}
增加一个帖子,此时使用SearchFacade.create(post);
(6)进入SearchFacade.create(post),
public static void create(Post post)
{
if (isSearchEnabled()) {
searchManager.create(post);
}
}
(7)进入searchManager.create(post);
调用 LuceneManager 中的 create方法:
public void create(Post post)
{
this.indexer.create(post);
}
(8) LuceneIndexer中的create方法:
public void create(Post post)
{
Document document = this.createDocument(post);
writer.addDocument(document);
}
进行索引。
删除、更新索引等操作最后都是通过LuceneIndexer类中的方法完成的。
发布了45 篇原创文章 · 获赞 0 · 访问量 2406
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章