Lucene.Net的语言处理包中Lucene.Net.Analysis.Cn的Bug
最近在对博客园的搜索程序进行改进。博客园的搜索功能用的是Lucene.net搜索引擎,当时博客园增加搜索功能时,Lucene.net还不支持中文分词, 后来得到http://www.cnblogs.com/yuhen/的帮助才解决这个问题。(最近博客园的搜索程序出了问题, 暂时改用google)。
现在,Lucene.net中支持分词功能, 我下载了语言处理包(Lucene.Net NLS Pack),用其中的Lucene.Net.Analysis.Cn.ChineseAnalyzer建立索引,可是每次建立索引就出现死锁现象。看了sf.net上的这篇文章CJK Analysis maybe cause dead lock, 我想到可能是Lucene.Net.Analysis.Cn中代码有Bug,查看了Lucene.Net.Analysis.Cn中的代码,果然有问题, 在ChineseTokenizer的第148行,将dataLen == -1改为dataLen == 0, 死锁的问题就解决了。
后来, 发现这篇文章http://ms.mblogger.cn/yysun/posts/6092.aspx中也讲到了Lucene.Net.Analysis.Cn中的Bug。
我将两个bug改了一下,放在博客园上给需要者下载。虽然只改了两行代码,但我想改好了放在这,对一些初次使用者还是有点帮助的。
Bin: http://files.cnblogs.com/dudu/Lucene.Net.Analysis.Cn.rar
Src: http://files.cnblogs.com/dudu/Lucene.Net.NLS.rar
Bin: http://files.cnblogs.com/dudu/Lucene.Net.Analysis.Cn.rar
Src: http://files.cnblogs.com/dudu/Lucene.Net.NLS.rar