Jforum中索引模組的分析 1

2021-05-10 23:27:18 字數 823 閱讀 4306

較早的時候分析過jforum中的lucene索引模組,當時覺得**真是短小精悍!值得學習。

1.searchmanager介面,

jforum定義了乙個searchmanager介面,通過lucenemanager實現了其中的方法。對於索引和檢索進行統一的管理。

其餘的是,針對post的create、delete、update索引方法。

2.luceneindexer類

主要是對post建立索引,主要方法有:

2.1 create(post post)

新建乙個lucene中的indexwriter,通過createdocument方法對於post進行索引,關閉writer,呼叫notifynewdocumentadded()方法

告知indexsearch索引已經更新,需要重新的開啟。

2.2 createdocument(post)方法

將post_id,forum_id,topic_id,user_id,文章內容進行索引。

2.3 update(post)方法

更新post之後,重新建立索引。

首先刪除該post的索引,通過post_id,然後重新建立索引。

2.4 notifynewdocumentadded方法

在建立索引或者重新建立索引之後,都呼叫notifynewdocumentadded通知indexsearch,索引檔案已經更新,需要重新載入。

其中lucenesearch實現了newdocumentadded介面。

重新開啟索引檔案。

3.索引總結

結構很清晰,就是提交post或者更新post之後,重新開啟索引檔案。

Jforum中索引模組的分析 2

在第一部分中主要分析了通過searchsetting對檢索和索引進行控制。本部分主要對於搜尋部分lucenesearch類進行乙個分析和闡述。1.lucenesearch類 lucenesearch類主要完成post的檢索功能,通過分析使用者輸入的搜尋引數,反正相關的結果。1.1 通過postid進...

商品模組表結構分析 1

1.表結構分析 1.1 商品模組表結構分析 from django.db import models from utils.mybasemodel import base class goods base goods type 1 vip 2 course channel type 1 普通 2 c...

索引在Oracle中的應用分析

索引是提高資料查詢最有效的方法,也是最難全面掌握的技術,因為正確的索引可能使效率提高10000倍,而無效的索引可能是浪費了資料庫空間,甚至大大降低查詢效能。一.索引的管理成本 1 儲存索引的磁碟空間 2 執行資料修改操作 insert update delete 產生的索引維護 3 在資料處理時所需...