天天看點

基于lucene.net 和ICTCLAS2014的站内搜尋的實作2

分詞系統建立完畢,這是基礎也是核心,後面我們建立索引要用到分詞系統。

下面依次講解索引的建立,索引的查找。

分詞系統建立完畢,這是基礎也是核心,後面我們建立索引要用到分詞系統。下面依次講解索引的建立,索引的查找。

         索引的建立采用的是倒排序,原理就是周遊所有的文本,對其進行分詞,然後把分的詞彙建立索引表。形式類似如下:

詞彙          出現詞彙的篇章1,篇章2,篇章3……

         建立索引的時候要注意這樣的Document,Field這倆術語。Document代表的是一個文檔,它裡面包含一個或者多個Filed,Field表示的就是一種域,你可以在一個Document裡面添加各種各樣的域,名字自己起,但是關于文檔的内容一定要加進去,方式如下所示:

doc.Add(new

Field("contents", str,

Field.Store.YES,

Field.Index.ANALYZED,Field.TermVector.WITH_POSITIONS_OFFSETS));

整個索引的建立如下所示:

查找的實作:

         Lucene.net中有多種多樣的查找類,但是如果要實作多條件查詢就要使用PhraseQuery

類。通過搜尋函數把搜尋結果放到容器裡面。

         最後結果的呈現時候,我們把搜尋結果放到清單裡面,如果還要顯示關鍵詞加亮,那麼就需要做一點額外的工作。在這裡我是通過ColorWord這個類實作的。具體的搜尋代碼如下所示:

最終的效果展示如下所示:

基于lucene.net 和ICTCLAS2014的站内搜尋的實作2

最終的代碼下載下傳位址:

繼續閱讀