開源全文搜尋引擎,比較火的當屬lucene.net。
lucene.net是
lucene
的.net移植版本,是乙個開源的全文檢索引擎開發包,即它不是乙個完整的全文檢索引擎,而是乙個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎。開發人員可以基於lucene.net實現全文檢索的功能。
比較麻煩的是,lucene.net關於中文的分詞,我好想沒有找到,所以我從網上發現了盤古分詞,盤古分詞據說在中文分詞上面做的很好,所以我也就將他引入到專案中來了。
首先是索引元,索引元怎麼實現呢?為了實現通用的索引元資料,我使用了如下的抽象。
1using
system;
2using
system.collections.generic;
3using
system.linq;
4using
system.text;
5using
lucene.net.documents;67
namespace
cjcms.framework.lucene812
13 listindexitemsfieldlist
1415
void
initindexitem();16}
17 }
1using
system;
2using
system.collections.generic;
3using
system.linq;
4using
system.text;
5using
lucene.net.documents;67
namespace
cjcms.framework.lucene812
13void
add(iindexitem item);
1415
void
update(iindexitem item);
1617
void
delete(iindexitem item);
1819
void delete(string
id);
2021 listfetch(string keywords, int pagenum, int
count);
2223
}24 }
1using
system;
2using
system.collections.generic;
3using
system.linq;
4using
system.text;
5using
lucene.net.search;
6using
lucene.net.index;
7using
lucene.net.analysis;
8using
lucene.net.analysis.pangu;
9using
lucene.net.documents;
10using
lucene.net.queryparsers;
1112
namespace
cjcms.framework.lucene
1321
set 22}
2324
public defaultindexmanager(string
indexpath)
2528
29public
void
add(iindexitem item)
3037
indexwriter.adddocument(doc);38}
3940
public
void
update(iindexitem item)
4145
46public
void
delete(iindexitem item)
4753
54public
void delete(string
id)55
61///
62///
分頁搜尋
63///
64///
65///
初始為1
66///
67///
68public listfetch(string keywords, int pagenum, int
count)
6979
return
list;80}
81}82 }
CJCMS系列 說說專案中的外掛程式思想(2)
今天是星期天,那我就趕緊多多的寫一些吧。上一次的一篇文章,不知道大家有沒有看懂,要是沒有看懂,請回去慢慢的嚼透吧,我覺得認真的看,有一定的基礎應該能夠看懂。上面一講我留下乙個疑問,那就是一句編譯後指令,有一些mvc基礎的人,應該能夠看出端倪,要是你沒有看懂,那就認真的聽我道來吧。1 xcopy s ...
專案中如何優化細節
一.記憶體優化 1.減少記憶體洩露。如timer,delegate,block,corefoundation物件 c物件 image 2.降低記憶體使用峰值。如使用懶載入 二.效能優化 卡頓產生的原因 cpu計算時間以及gpu渲染時間較長,造成vsync 垂直同步的訊號 重新整理銜接不上 解決卡頓主...
如何減少專案中if else巢狀
一般建議if else巢狀不超過三層 原始 bean類 private class shareitem public inte ce sharelistener 定義分享介面 public void share shareitem item,sharelistener listener else e...