【Lucene】IndexReader类的maxDoc()与numDocs()的区别

转载 2013年12月02日 21:29:04

http://hi.baidu.com/sunky/item/31fdfef9ad1a9d763d198b47


1)Let us see the difference in the comment of  Class IndexReader

  /** Returns the number of documents in this index. */
  public abstract int numDocs();

  /** Returns one greater than the largest possible document number.
   This may be used to, e.g., determine how big to allocate an array which
   will have an element for every document number in an index.
   */
  public abstract int maxDoc();

2) Actually, the real code to implement is the best explanation. The implemetation Class of IndexReader is SegmentReader. Let us see theire implementations as below:

  public final int maxDoc() {
    return fieldsReader.size();
  }

  public final int numDocs() {
    int n = maxDoc();
    if (deletedDocs != null)
      n -= deletedDocs.count();
    return n;
  }

  I think it is easy to understand the reason now !

相关文章推荐

solr 近实时搜索

摘要: Solr的近实时搜索NRT(Near Real Time Searching)意味着文档可以在索引以后马上可以被查询到。Solr不会因为这次提交而阻塞更新操作,不会等待后台合并的完成而直接检索...

Solr的函数查询Function Queries

摘要: 函数查询允许你使用一个或多个数字字段的真实值生成一个相关性分数,函数查询在standard、DisMax、eDisMax下都能使用。 查询函数可以是常量、字段或者其他函数的组合。使用函数可以...

全文检索引擎Solr系列——入门篇

Solr采用Lucene搜索库为核心,提供全文索引和搜索开源企业平台,提供REST的HTTP/XML和JSON的API,如果你是Solr新手,那么就和我一起来入门吧!本教程以solr4.8作为测试环境...
  • yjl33
  • yjl33
  • 2016年06月14日 09:44
  • 1781

lucene使用教程5 --常用类的对象之IndexReader

本篇文章主要介绍IndexReader,Directory,Analyzer的常见使用方法 IndexReader IndexReader对象可以用于读取索引目录和按编号删除文档对象。这个...

Lucene5 学习笔记(3) —— 重用 IndexReader 和常用的搜索方法

02_lucene简介和搜索初步.avi

Lucene之IndexWriter、IndexReader保证唯一实例(备忘)

大家知道,lucene中的IndexWriter和IndexReader都是线程安全的类,但是不能出现多多线程绑定多个实例的情况。因此很有必要保证IndexWriter和IndexReader全局只有...
  • sl0007
  • sl0007
  • 2012年08月22日 09:37
  • 1042

lucene的IndexReader的初始化过程

在使用Lucene时,有一条建议”不要频繁去打开关闭硬盘索引”。为什么会有这条建议?这就需要在IndexReader的实例化过程中找答案。先说一个结论“IndexReader的实例化过程是一个非常耗时...

Lucene中删除索引是用IndexWriter还是用IndexReader

IndexReader删除 IndexReader.DeleteDocument(int docNum)——根据Document的docId删除单个Document IndexReader...
  • PATTAP
  • PATTAP
  • 2012年07月21日 18:45
  • 1782

lucene管理IndexReader和IndexWriter的最佳实践

实例化IndexReader需要加载索引文件,所以实例化它是非常耗资源的。  IndexReader是线程安全的,通常一个索引目录,我们只实例化一个IndexReader就够了。  当索引...
  • sl0007
  • sl0007
  • 2012年08月22日 11:03
  • 2481

Lucene IndexReader,IndexWriter,IndexSearcher 缓存应用

//判断处理reader是否改变 for (Entry entry : new HashMap(readerMap).entrySet()) { try { Direct...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Lucene】IndexReader类的maxDoc()与numDocs()的区别
举报原因:
原因补充:

(最多只允许输入30个字)