花了很长时间,终于大致整明白lucene和compass了,然后我用SSH + compass做了一个全文检索的示例程序,分词器使用的是paoding,但是,搜索结果不太理想。比如,用户输入的关键词是“商业周刊”,分词后得到“商业”、“周刊”两个词,索引中有这么几条记录:1、商业周刊
2、南都周刊
3、新周刊
4、凤凰周刊
5、三联生活周刊
6、商业频道
7、商业大厦
8、商业大亨
9、哈尔滨商业大学现在的问题是,只显示出了第1条记录:商业周刊
我的目标是凡是含有“商业”或者“周刊”的记录都应该显示出来,也就是说某条记录中只要有一个词匹配上,那么它就应该被显示。现在的情况是必须要每个词都匹配了,才能被显示。做个比方,我的想法是商业 or 周刊,不是商业 and 周刊。相关代码如下:
Compass compass = compassTemplate.getCompass();
CompassSession session = compass.openSession();
CompassHits hits = session.find("name:" + "商业 周刊");
System.out.println("共 " + hits.getLength() + " 条匹配结果。");
急...在线等...