Lucene4.0 得分的问题,难道是官方BUG?

哑鸟 发布于 2013/07/04 17:00
阅读 771
收藏 0
scoreDocs[i].score这个是获取文档的得分的 

api里是这么说的Expert: The score of this document for the query 
不排序情况下正常 
但是我在排序情况下实际测试结果显示的都是 得分:NaN。。。。。 

我的排序是这样的: 
SortField[] sortfield = new SortField[] { SortField.FIELD_SCORE, new SortField(null, SortField.DOC, true) }; 
Sort sort = new Sort(sortfield); 
TopDocs topDocs = isearcher.search(query,null,100,sort); 
我的想法是先按相关度排,然后按照索引号的倒叙排,我的索引号是按数据库日期升序排的,所以我想要的就是先按相关度排,得分一样的话,索引号大的排前面,就是日期大的排前面。 

结果在这种排序下查得分数就是出现Nan 不过搜是可以搜的 

而且我先记录下不排序情况下的得分 然后写出按照我的方法排的结果顺序,再改代码弄成排序的,结果是正确的,就是显示的得分是NaN 应该是BUG;

同时我也在网上的其他地方看了也有很多人反应,尝试用searcher.setDefaultFieldSortScoring(truefalse);

编译器显示未找到方法,可能是版本问题吗?

有没有良好建议

@红薯

加载中
0
f
fqhunter
  1. TopFieldCollector tfc = TopFieldCollector.create(Sort.RELEVANCE, 100,
  2.                 false /* fillFields */,
  3.                 true /* trackDocScores */,
  4.                 true /* trackMaxScore */,
  5.                 false /* docsInOrder */);
  6.         searcher.search(query, tfc);
  7.         TopDocs results = tfc.topDocs();
返回顶部
顶部