奇怪的返回记录数 求解!
87271833
2010-02-08
TopDocs topDocs = isearcher.search(query, 8 );
8代表返回最靠前的8条记录,lucene3的API说明书也是这么说的 可是用topDocs.totalHits查询居然不是8 而是9 我的索引正好有相关的9条记录他都查到了 导致我下面for (int i = 0; i < topDocs.totalHits; i++) 循环出错 越界了 这说明他的确只返回了8条记录 但是topDocs.totalHits却等于9 那么我循环就不可以用i < topDocs.totalHits来判断了 我现在在循环前加了判断 int n = topDocs.totalHits; if (n > 8 ) { n = 8; } else { } for (int i = 0; i < n; i++) 这样就没错了 不过我觉得这个设计不好 还要自己加判断 |
|
fanjun
2010-02-10
totalHits返回总共的匹配数,跟你限制了返回数量无关
|
|
TonyLian
2010-02-10
totalHits是总命中数,看到Googole提示你的吗“搜索XXXX得到4,500,000件结果”
for(int i=0; i<topDocs.scoreDocs.length; i++) |