分詞系統建立完畢,這是基礎也是核心,後面我們建立索引要用到分詞系統。
下面依次講解索引的建立,索引的查找。
分詞系統建立完畢,這是基礎也是核心,後面我們建立索引要用到分詞系統。下面依次講解索引的建立,索引的查找。
索引的建立采用的是倒排序,原理就是周遊所有的文本,對其進行分詞,然後把分的詞彙建立索引表。形式類似如下:
詞彙 出現詞彙的篇章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這個類實作的。具體的搜尋代碼如下所示:
最終的效果展示如下所示:
最終的代碼下載下傳位址: