最近在實現基於lucene.net的搜索方案,涉及中文分詞,找了很多,最終選擇了MMSeg4j,但MMSeg4j只有Java版,在博客園上找到了*王員外*(http://www.cnblogs.com/land/archive/2011/07/19/mmseg4j.html )基於Java版的翻譯代碼,但它不支持最新的Lucene.Net 3.0.3,於是基於它的代碼升級升級到了最新版Lucene.Net (≥ 3.0.3),同時將其中大部分Java風格代碼修改為.Net風格,並修正了其中幾個小錯誤。
為了方便大家使用,我把修改后代碼放到Github上了,並包含簡單示例代碼。另外,為了方便使用,制作了NuGet安裝包,上傳到了NuGet上,使用時,直接NuGet搜索Lucene.Net.Analysis.MMSeg即可。
Git地址
https://github.com/JimLiu/Lucene.Net.Analysis.MMSeg
NuGet地址
https://nuget.org/packages/Lucene.Net.Analysis.MMSeg/
PM> Install-Package Lucene.Net.Analysis.MMSeg
使用
一共三種搜索模式供選擇:
SimpleAnalyzer
Analyzer analyzer = new SimpleAnalyzer();
MaxWordAnalyzer
Analyzer analyzer = new MaxWordAnalyzer();
ComplexAnalyzer
Analyzer analyzer = new ComplexAnalyzer();
具體使用方法,請參考代碼中的示例和lucene.net的文檔