`
GhostWolf
  • 浏览: 307903 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

lucene3与paoding

阅读更多
最近又开始研究lucene了 真他妈的折腾 太久没用都基本忘光了。

正文:

1.paoding的jar包只支持了lucene2的,官方上说如果要用for lucene3的,需要直接从svn check下来,这里需要注意。

2.由于功能上的需要,自己加了一个健康类的词库,这里需要注意两点:

    a.加了词库后,需要把class/dic里面的.compiled文件夹删除,因为paoding在第一次执行时会把所有的词库都编译一次,似乎这么做是为了提高解析的执行效率。
    b.词库编译最好使用SortingDictionariesCompiler这个类编译,需要修改paoding-analyzer.properties,把其中paoding.analyzer.dictionaries.compiler这个值去掉注释。

    之所以这么做是因为如果使用默认的MostWordsModeDictionariesCompiler这个类编译的话,有些长词都被切分为小词,对于搜索,可能导致结果不准确。

    如:“朝阳区慈济医院”这个词如果用MostWordsModeDictionariesCompiler编译词库,切分出来的结果可能是“朝阳”“朝阳区”“慈济”“医院”但是“朝阳区慈济医院”就被吃了,但是如果用SortingDictionariesCompiler编译词库,切分出来的结果可能是“朝阳”“朝阳区”“慈济”“医院”“朝阳区慈济医院”,个人感觉这样比较符合要求。


代码上的区别:
SortingDictionariesCompiler
Dictionary vocabularyDictionary = dictionaries.getVocabularyDictionary();
File vocabularyFile = new File(compiledDicHomeFile, "vocabulary.dic.compiled");
sortCompile(vocabularyDictionary, vocabularyFile, charsetName);
		
		
MostWordsModeDictionariesCompiler
Dictionary vocabularyDictionary = dictionaries.getVocabularyDictionary();
File vocabularyFile = new File(compiledDicHomeFile, "vocabulary.dic.compiled");
compileVocabulary(vocabularyDictionary, knife, vocabularyFile, charsetName);


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics