Lucene查询的问题

grantbb 2008-03-13
索引的标题是:“中国队勇夺世界杯 ”

如果是的用户输入:勇夺中国队世界杯 的时候可以搜索到这条记录。
imjl 2008-03-13
这个和分词相关。我对分词这块比较薄弱。

还有种解决方式,那就是相似词,大概意思就是对已知的常用词语建立一个映射关系
javaeyes 2008-03-14
这个问题,搜索引擎一个需求就是要找出这样的内容。
如果你真的不想要,发这个查询的时候两边加上""号
dikar 2008-03-17
一个涉及到的是词库的建立,比如说“中国队”“世界杯”就应该被加入到词库
第二个问题是你搜索的时候的跨度是多少,简单的说两个被分的词之间间隔有多少。
  索引是这个:中国队勇夺世界杯,他分词的时候就是“中国队”“勇夺”“世界杯”。

勇夺中国队世界杯 被搜索分词的时候被分为“勇夺”“中国队”“世界杯”
假如说他是按照OR查询,则应该可以查到你上面的索引,只要有一个就可以。
假如说他是按照AND查询,对你的搜索词检索时,他发现 “中国队”和“世界杯”之间的跨度为2(中间是勇夺两个字),“勇夺”和“世界杯”之间的跨度是0,所以根据检索结果为跨度最小,所以就把你的查询返回了。至于“勇夺”和“中国队”之间的跨度可以理解为超过了最大跨度。对于综合跨度可能还有个算法公式,我还没看过。
Global site tag (gtag.js) - Google Analytics