本人最近正在使用lucene.net搜索,有一个功能是将要查找的数据转换为拼音,在对拼音建立索引,可当我使用拼音进行查找时,得出的数据不是特别匹配,我使用的是标准分词StandardAnalyzer,大牛们请指教
字母匹配结果不正确啊 ?!!!
1 IndexSearcher mysea = new IndexSearcher(INDEXPATH); 2 MultiFieldQueryParser parser = new MultiFieldQueryParser(new string[] { "CnName", "QuanPin" }, new StandardAnalyzer()); 3 Query query = parser.Parse(queryString); 4 PhraseQuery q = new PhraseQuery(); 5 //q.SetSlop( 6 hits = mysea.Search(query);
拼音的話,和 英文 是沒有什麽區別的哦。
可是为什么我使用StandardAnalyzer去查找,根本查找不到呢 ?
@饥饿定义我: 你 給我一個txt文檔,我用我的程式查找一下。告訴你。
@無限遐想: 加QQ吧,发给你 644895467
@饥饿定义我: http://www.cnblogs.com/Teco/archive/2012/05/13/2498307.html
使用盘古分词,里面有设置
.net?
@饥饿定义我: YES
@freewzx2005: 这个是使用盘古分词,然后用这词建立索引,再用lucene查找么?
这个主要看你的应用场景我觉得StandardAnalyzer是可以的,比如输入拼音shangh=>搜到shanghai,如果要这种效果只要强制一元分词就可以了,这种简单的分词你只要自己写分析器就可以了,lucene自带的里面不知道有没有。
怎么样强制使用一元分词?
@饥饿定义我: 试试我的Luke.net吧,希望对你有帮助。http://www.cnblogs.com/jinzhao/archive/2012/02/13/2348908.html