Lucene IKAnalyzer 中文精确匹配问题

chick56 2012-05-09 03:45:09
IKAnalyzer2012分词.

在遍历一堆关键字搜索的时候, 用TermQuery, 搜索的中文结果不是精确匹配的.

比如句子"成绩第十一名的同学是?"

在关键字词典中找, "第十" "第十一",

遍历的时候到"第十" 就认为命中了, 无法匹配上"第十一",

就是说词典中长词如果包含短词, 短词会被匹配上, 从而匹配不了长词.

请问这是query时的问题吗? 怎么精确匹配中文词呢?

public Dict findMatchDict(String dictName, IndexSearcher searcher) {

Dict dict = null;

List<Dict> dL = dictDao.findDict(dictName);
try {

for (Dict d : dL) {
Term t = new Term("content", d.getname());
Query query = new TermQuery(t);
TopDocs topDocs = searcher.search(query, 1);
if (topDocs.totalHits > 0) {
dict = d;
break;
}
}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return dict;
}
...全文
1355 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
鲁虾 2012-12-18
  • 打赏
  • 举报
回复
嗯,这个case不错!!
feiniao211 2012-12-17
  • 打赏
  • 举报
回复
请问楼主 要实现前面出现完全匹配,后面出现分词的效果怎么做 就比如 我要搜索“我想找一个女朋友” 先找到有,“我想找一个女朋友” 这篇文档 然后在找 “女朋友” 和“我想找” 有这些词的文档
ternus 2012-06-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

客气了, 网上可以搜到作者对我问题的解答, 分词的时候有参数设定最大词长切分就可以了.

IKSegmenter ik = new IKSegmenter(new StringReader(sentence), true);// 当为true时,分词器进行最大词长切分

IKAnalyzer ika = new IKAnalyzer(true);

感谢作者, 大家学习, 一起进步……
[/Quote]

你的这两句代码具体怎么用哦,咋个这里会出现搜索key在这里。
chick56 2012-06-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 3 楼 的回复:

客气了, 网上可以搜到作者对我问题的解答, 分词的时候有参数设定最大词长切分就可以了.

IKSegmenter ik = new IKSegmenter(new StringReader(sentence), true);// 当为true时,分词器进行最大词长切分

IKAnalyzer ika = new IKAnalyzer(true);

感……
[/Quote]

其实这两行代码是不需同时用的.
Analyzer就是定义了分词器. Segment是本身是用了analyzer分词后的分词结果.
文档里面有说明的.
chick56 2012-06-18
  • 打赏
  • 举报
回复
客气了, 网上可以搜到作者对我问题的解答, 分词的时候有参数设定最大词长切分就可以了.

IKSegmenter ik = new IKSegmenter(new StringReader(sentence), true);// 当为true时,分词器进行最大词长切分

IKAnalyzer ika = new IKAnalyzer(true);

感谢作者, 大家学习, 一起进步, 呵呵!
richtone_xy 2012-06-06
  • 打赏
  • 举报
回复
跪求楼主告诉我一下,怎么解决的,我也遇到了这个问题。只需要精确匹配,不知道该怎么弄,我的邮箱xiefan1980@tom.com
chick56 2012-05-09
  • 打赏
  • 举报
回复
是IKAnalyzer最大词长切分问题, 已由作者帮忙解决, 谢谢.

2,760

社区成员

发帖
与我相关
我的任务
社区描述
搜索引擎的服务器通过网络搜索软件或网络登录等方式,将Internet上大量网站的页面信息收集到本地,经过加工处理建立信息数据库和索引数据库。
社区管理员
  • 搜索引擎技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧