日期:2014-05-20  浏览次数:20608 次

Compass + paoding中文分词的问题
花了很长时间,终于大致整明白lucene和compass了,然后我用SSH + compass做了一个全文检索的示例程序,分词器使用的是paoding,但是,搜索结果不太理想。

比如,用户输入的关键词是“商业周刊”,分词后得到“商业”、“周刊”两个词,索引中有这么几条记录:

1、商业周刊
2、南都周刊
3、新周刊
4、凤凰周刊
5、三联生活周刊
6、商业频道
7、商业大厦
8、商业大亨
9、哈尔滨商业大学

现在的问题是,只显示出了第1条记录:商业周刊
我的目标是凡是含有“商业”或者“周刊”的记录都应该显示出来,也就是说某条记录中只要有一个词匹配上,那么它就应该被显示。现在的情况是必须要每个词都匹配了,才能被显示。

做个比方,我的想法是商业 or 周刊,不是商业 and 周刊

相关代码如下:

Java code

Compass compass = compassTemplate.getCompass();
CompassSession session = compass.openSession();
CompassHits hits = session.find("name:" + "商业 周刊");
System.out.println("共 " + hits.getLength() + " 条匹配结果。");



急...在线等...

------解决方案--------------------
这不是分词的问题 是你查询时条件设置的问题
------解决方案--------------------
http://85600367.iteye.com/admin/blogs/855535这是我对lucene多条件查询的记录
你可以借鉴下 compass没用过