
























争取每天记录一点
在Lucene早期的版本中是使用Hits存检索结果的.在我的项目中也是先用的这个.但是效率真的不高.它一次将所有的数据都提取出来处理,所以很慢.
现在我们用TopDocs来代替Hits.
| 方法 | 说明 |
| TopDocs Search(Query query, int n) | 条件和取前n条数据 |
| TopDocs Search(Query query, Filter filter, int n) | 使用过滤器的检索 |
| TopFieldDocs Search(Query query, Filter filter, int n, Sort sort) | 排序的检索结果 |
totalHits 总共命中的个数
scoreDocs 匹配文档的集合包含了DocId和Score 一般通过DocId取文档
getMaxScore() 返回最匹配的文档得分.
第一种方法:类似使用Hits,一次将所有的DocId都取出来后再排序.通常将这个结果放到缓存中,适用于对检索结果频繁翻页的情况.
第二种方法:每次都是新搜索,n的数值随着翻页不断增加.大部分都会选择这种方式,尤其是数据量大,检索时间长,命中普遍低的情况.
LUCENE.NET QQ交流群(81361051)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。