blob: b23c3e228358f66ef307368c21e1837119987080 [file] [log] [blame]
<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Class TopDocsCollector&lt;T&gt;
| Apache Lucene.NET 4.8.0-beta00010 Documentation </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Class TopDocsCollector&lt;T&gt;
| Apache Lucene.NET 4.8.0-beta00010 Documentation ">
<meta name="generator" content="docfx 2.56.0.0">
<link rel="shortcut icon" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/favicon.ico">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.css">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.css">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.css">
<meta property="docfx:navrel" content="toc.html">
<meta property="docfx:tocrel" content="core/toc.html">
<meta property="docfx:rel" content="https://lucenenet.apache.org/docs/4.8.0-beta00009/">
</head>
<body data-spy="scroll" data-target="#affix" data-offset="120">
<div id="wrapper">
<header>
<nav id="autocollapse" class="navbar ng-scope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">
<img id="logo" class="svg" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/lucene-net-color.png" alt="">
</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<form class="navbar-form navbar-right" role="search" id="search">
<div class="form-group">
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
</div>
</form>
</div>
</div>
</nav>
<div class="subnav navbar navbar-default">
<div class="container hide-when-search">
<ul class="level0 breadcrumb">
<li>
<a href="https://lucenenet.apache.org/docs/4.8.0-beta00009/">API</a>
<span id="breadcrumb">
<ul class="breadcrumb">
<li></li>
</ul>
</span>
</li>
</ul>
</div>
</div>
</header>
<div class="container body-content">
<div id="search-results">
<div class="search-list"></div>
<div class="sr-items">
<p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
</div>
<ul id="pagination"></ul>
</div>
</div>
<div role="main" class="container body-content hide-when-search">
<div class="sidenav hide-when-search">
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
<div class="sidetoggle collapse" id="sidetoggle">
<div id="sidetoc"></div>
</div>
</div>
<div class="article row grid-right">
<div class="col-md-10">
<article class="content wrap" id="_content" data-uid="Lucene.Net.Search.TopDocsCollector`1">
<h1 id="Lucene_Net_Search_TopDocsCollector_1" data-uid="Lucene.Net.Search.TopDocsCollector`1" class="text-break">Class TopDocsCollector&lt;T&gt;
</h1>
<div class="markdown level0 summary"><p>A base class for all collectors that return a <a class="xref" href="Lucene.Net.Search.TopDocs.html">TopDocs</a> output. This
collector allows easy extension by providing a single constructor which
accepts a <a class="xref" href="Lucene.Net.Util.PriorityQueue-1.html">PriorityQueue&lt;T&gt;</a> as well as protected members for that
priority queue and a counter of the number of total hits.
<p>
Extending classes can override any of the methods to provide their own
implementation, as well as avoid the use of the priority queue entirely by
passing null to <a class="xref" href="Lucene.Net.Search.TopDocsCollector-1.html#Lucene_Net_Search_TopDocsCollector_1__ctor_Lucene_Net_Util_PriorityQueue__0__">TopDocsCollector(PriorityQueue&lt;T&gt;)</a>. In that case
however, you might want to consider overriding all methods, in order to avoid
a <span class="xref">System.NullReferenceException</span>.</p>
</div>
<div class="markdown level0 conceptual"></div>
<div class="inheritance">
<h5>Inheritance</h5>
<div class="level0"><span class="xref">System.Object</span></div>
<div class="level1"><span class="xref">TopDocsCollector&lt;T&gt;</span></div>
<div class="level2"><a class="xref" href="Lucene.Net.Search.TopFieldCollector.html">TopFieldCollector</a></div>
<div class="level2"><a class="xref" href="Lucene.Net.Search.TopScoreDocCollector.html">TopScoreDocCollector</a></div>
</div>
<div classs="implements">
<h5>Implements</h5>
<div><a class="xref" href="Lucene.Net.Search.ITopDocsCollector.html">ITopDocsCollector</a></div>
<div><a class="xref" href="Lucene.Net.Search.ICollector.html">ICollector</a></div>
</div>
<div class="inheritedMembers">
<h5>Inherited Members</h5>
<div>
<span class="xref">System.Object.Equals(System.Object)</span>
</div>
<div>
<span class="xref">System.Object.Equals(System.Object, System.Object)</span>
</div>
<div>
<span class="xref">System.Object.GetHashCode()</span>
</div>
<div>
<span class="xref">System.Object.GetType()</span>
</div>
<div>
<span class="xref">System.Object.MemberwiseClone()</span>
</div>
<div>
<span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
</div>
<div>
<span class="xref">System.Object.ToString()</span>
</div>
</div>
<h6><strong>Namespace</strong>: <a class="xref" href="Lucene.Net.Search.html">Lucene.Net.Search</a></h6>
<h6><strong>Assembly</strong>: Lucene.Net.dll</h6>
<h5 id="Lucene_Net_Search_TopDocsCollector_1_syntax">Syntax</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public abstract class TopDocsCollector&lt;T&gt; : ITopDocsCollector, ICollector where T : ScoreDoc</code></pre>
</div>
<h5 class="typeParameters">Type Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="parametername">T</span></td>
<td></td>
</tr>
</tbody>
</table>
<h3 id="constructors">Constructors
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1__ctor_Lucene_Net_Util_PriorityQueue__0__.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.%23ctor(Lucene.Net.Util.PriorityQueue%7B%600%7D)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L59">View Source</a>
</span>
<a id="Lucene_Net_Search_TopDocsCollector_1__ctor_" data-uid="Lucene.Net.Search.TopDocsCollector`1.#ctor*"></a>
<h4 id="Lucene_Net_Search_TopDocsCollector_1__ctor_Lucene_Net_Util_PriorityQueue__0__" data-uid="Lucene.Net.Search.TopDocsCollector`1.#ctor(Lucene.Net.Util.PriorityQueue{`0})">TopDocsCollector(PriorityQueue&lt;T&gt;)</h4>
<div class="markdown level1 summary"><p>Sole constructor.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected TopDocsCollector(PriorityQueue&lt;T&gt; pq)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Util.PriorityQueue-1.html">PriorityQueue</a>&lt;T&gt;</td>
<td><span class="parametername">pq</span></td>
<td></td>
</tr>
</tbody>
</table>
<h3 id="fields">Fields
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_EMPTY_TOPDOCS.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.EMPTY_TOPDOCS%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L42">View Source</a>
</span>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_EMPTY_TOPDOCS" data-uid="Lucene.Net.Search.TopDocsCollector`1.EMPTY_TOPDOCS">EMPTY_TOPDOCS</h4>
<div class="markdown level1 summary"><p>This is used in case <a class="xref" href="Lucene.Net.Search.TopDocsCollector-1.html#Lucene_Net_Search_TopDocsCollector_1_GetTopDocs">GetTopDocs()</a> is called with illegal parameters, or there
simply aren&apos;t (enough) results.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected static readonly TopDocs EMPTY_TOPDOCS</code></pre>
</div>
<h5 class="fieldValue">Field Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Search.TopDocs.html">TopDocs</a></td>
<td></td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_m_pq.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.m_pq%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L50">View Source</a>
</span>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_m_pq" data-uid="Lucene.Net.Search.TopDocsCollector`1.m_pq">m_pq</h4>
<div class="markdown level1 summary"><p>The priority queue which holds the top documents. Note that different
implementations of <a class="xref" href="Lucene.Net.Util.PriorityQueue-1.html">PriorityQueue&lt;T&gt;</a> give different meaning to &apos;top documents&apos;.
<span class="xref">Lucene.Net.Search.HitQueue</span> for example aggregates the top scoring documents, while other priority queue
implementations may hold documents sorted by other criteria.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected PriorityQueue&lt;T&gt; m_pq</code></pre>
</div>
<h5 class="fieldValue">Field Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Util.PriorityQueue-1.html">PriorityQueue</a>&lt;T&gt;</td>
<td></td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_m_totalHits.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.m_totalHits%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L54">View Source</a>
</span>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_m_totalHits" data-uid="Lucene.Net.Search.TopDocsCollector`1.m_totalHits">m_totalHits</h4>
<div class="markdown level1 summary"><p>The total number of documents that the collector encountered. </p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected int m_totalHits</code></pre>
</div>
<h5 class="fieldValue">Field Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Int32</span></td>
<td></td>
</tr>
</tbody>
</table>
<h3 id="properties">Properties
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_AcceptsDocsOutOfOrder.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.AcceptsDocsOutOfOrder%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L239">View Source</a>
</span>
<a id="Lucene_Net_Search_TopDocsCollector_1_AcceptsDocsOutOfOrder_" data-uid="Lucene.Net.Search.TopDocsCollector`1.AcceptsDocsOutOfOrder*"></a>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_AcceptsDocsOutOfOrder" data-uid="Lucene.Net.Search.TopDocsCollector`1.AcceptsDocsOutOfOrder">AcceptsDocsOutOfOrder</h4>
<div class="markdown level1 summary"><p>Return <code>true</code> if this collector does not
require the matching docIDs to be delivered in int sort
order (smallest to largest) to <a class="xref" href="Lucene.Net.Search.TopDocsCollector-1.html#Lucene_Net_Search_TopDocsCollector_1_Collect_System_Int32_">Collect(Int32)</a>.</p>
<p> Most Lucene Query implementations will visit
matching docIDs in order. However, some queries
(currently limited to certain cases of <a class="xref" href="Lucene.Net.Search.BooleanQuery.html">BooleanQuery</a>)
can achieve faster searching if the
<a class="xref" href="Lucene.Net.Search.ICollector.html">ICollector</a> allows them to deliver the
docIDs out of order.</p>
<p> Many collectors don&apos;t mind getting docIDs out of
order, so it&apos;s important to return <code>true</code>
here.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public abstract bool AcceptsDocsOutOfOrder { get; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Boolean</span></td>
<td></td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_TopDocsCount.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.TopDocsCount%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L98">View Source</a>
</span>
<a id="Lucene_Net_Search_TopDocsCollector_1_TopDocsCount_" data-uid="Lucene.Net.Search.TopDocsCollector`1.TopDocsCount*"></a>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_TopDocsCount" data-uid="Lucene.Net.Search.TopDocsCollector`1.TopDocsCount">TopDocsCount</h4>
<div class="markdown level1 summary"><p>The number of valid priority queue entries </p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected virtual int TopDocsCount { get; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Int32</span></td>
<td></td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_TotalHits.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.TotalHits%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L89">View Source</a>
</span>
<a id="Lucene_Net_Search_TopDocsCollector_1_TotalHits_" data-uid="Lucene.Net.Search.TopDocsCollector`1.TotalHits*"></a>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_TotalHits" data-uid="Lucene.Net.Search.TopDocsCollector`1.TotalHits">TotalHits</h4>
<div class="markdown level1 summary"><p>The total number of documents that matched this query. </p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual int TotalHits { get; }</code></pre>
</div>
<h5 class="propertyValue">Property Value</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Int32</span></td>
<td></td>
</tr>
</tbody>
</table>
<h3 id="methods">Methods
</h3>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_Collect_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.Collect(System.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L211">View Source</a>
</span>
<a id="Lucene_Net_Search_TopDocsCollector_1_Collect_" data-uid="Lucene.Net.Search.TopDocsCollector`1.Collect*"></a>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_Collect_System_Int32_" data-uid="Lucene.Net.Search.TopDocsCollector`1.Collect(System.Int32)">Collect(Int32)</h4>
<div class="markdown level1 summary"><p>Called once for every document matching a query, with the unbased document
number.
<p>Note: The collection of the current segment can be terminated by throwing
a <a class="xref" href="Lucene.Net.Search.CollectionTerminatedException.html">CollectionTerminatedException</a>. In this case, the last docs of the
current <a class="xref" href="Lucene.Net.Index.AtomicReaderContext.html">AtomicReaderContext</a> will be skipped and <a class="xref" href="Lucene.Net.Search.IndexSearcher.html">IndexSearcher</a>
will swallow the exception and continue collection with the next leaf.
<p>
Note: this is called in an inner search loop. For good search performance,
implementations of this method should not call <a class="xref" href="Lucene.Net.Search.IndexSearcher.html#Lucene_Net_Search_IndexSearcher_Doc_System_Int32_">Doc(Int32)</a> or
<a class="xref" href="Lucene.Net.Index.IndexReader.html#Lucene_Net_Index_IndexReader_Document_System_Int32_">Document(Int32)</a> on every hit.
Doing so can slow searches by an order of magnitude or more.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public abstract void Collect(int doc)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">doc</span></td>
<td></td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_GetTopDocs.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.GetTopDocs%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L106">View Source</a>
</span>
<a id="Lucene_Net_Search_TopDocsCollector_1_GetTopDocs_" data-uid="Lucene.Net.Search.TopDocsCollector`1.GetTopDocs*"></a>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_GetTopDocs" data-uid="Lucene.Net.Search.TopDocsCollector`1.GetTopDocs">GetTopDocs()</h4>
<div class="markdown level1 summary"><p>Returns the top docs that were collected by this collector. </p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual TopDocs GetTopDocs()</code></pre>
</div>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Search.TopDocs.html">TopDocs</a></td>
<td></td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_GetTopDocs_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.GetTopDocs(System.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L128">View Source</a>
</span>
<a id="Lucene_Net_Search_TopDocsCollector_1_GetTopDocs_" data-uid="Lucene.Net.Search.TopDocsCollector`1.GetTopDocs*"></a>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_GetTopDocs_System_Int32_" data-uid="Lucene.Net.Search.TopDocsCollector`1.GetTopDocs(System.Int32)">GetTopDocs(Int32)</h4>
<div class="markdown level1 summary"><p>Returns the documents in the rage [<code data-dev-comment-type="paramref" class="paramref">start</code> .. pq.Count) that were collected
by this collector. Note that if <code data-dev-comment-type="paramref" class="paramref">start</code> &gt;= pq.Count, an empty <a class="xref" href="Lucene.Net.Search.TopDocs.html">TopDocs</a> is
returned.
<p>
This method is convenient to call if the application always asks for the
last results, starting from the last &apos;page&apos;.
<p>
<strong>NOTE:</strong> you cannot call this method more than once for each search
execution. If you need to call it more than once, passing each time a
different <code data-dev-comment-type="paramref" class="paramref">start</code>, you should call <a class="xref" href="Lucene.Net.Search.TopDocsCollector-1.html#Lucene_Net_Search_TopDocsCollector_1_GetTopDocs">GetTopDocs()</a> and work
with the returned <a class="xref" href="Lucene.Net.Search.TopDocs.html">TopDocs</a> object, which will contain all the
results this search execution collected.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual TopDocs GetTopDocs(int start)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">start</span></td>
<td></td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Search.TopDocs.html">TopDocs</a></td>
<td></td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_GetTopDocs_System_Int32_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.GetTopDocs(System.Int32%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L152">View Source</a>
</span>
<a id="Lucene_Net_Search_TopDocsCollector_1_GetTopDocs_" data-uid="Lucene.Net.Search.TopDocsCollector`1.GetTopDocs*"></a>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_GetTopDocs_System_Int32_System_Int32_" data-uid="Lucene.Net.Search.TopDocsCollector`1.GetTopDocs(System.Int32,System.Int32)">GetTopDocs(Int32, Int32)</h4>
<div class="markdown level1 summary"><p>Returns the documents in the rage [<code data-dev-comment-type="paramref" class="paramref">start</code> .. <code data-dev-comment-type="paramref" class="paramref">start</code>+<code data-dev-comment-type="paramref" class="paramref">howMany</code>) that were
collected by this collector. Note that if <code data-dev-comment-type="paramref" class="paramref">start</code> &gt;= pq.Count, an empty
<a class="xref" href="Lucene.Net.Search.TopDocs.html">TopDocs</a> is returned, and if pq.Count - <code data-dev-comment-type="paramref" class="paramref">start</code> &lt; <code data-dev-comment-type="paramref" class="paramref">howMany</code>, then only the
available documents in [<code data-dev-comment-type="paramref" class="paramref">start</code> .. pq.Count) are returned.
<p>
This method is useful to call in case pagination of search results is
allowed by the search application, as well as it attempts to optimize the
memory used by allocating only as much as requested by <code data-dev-comment-type="paramref" class="paramref">howMany</code>.
<p>
<strong>NOTE:</strong> you cannot call this method more than once for each search
execution. If you need to call it more than once, passing each time a
different range, you should call <a class="xref" href="Lucene.Net.Search.TopDocsCollector-1.html#Lucene_Net_Search_TopDocsCollector_1_GetTopDocs">GetTopDocs()</a> and work with the
returned <a class="xref" href="Lucene.Net.Search.TopDocs.html">TopDocs</a> object, which will contain all the results this
search execution collected.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public virtual TopDocs GetTopDocs(int start, int howMany)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">start</span></td>
<td></td>
</tr>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">howMany</span></td>
<td></td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Search.TopDocs.html">TopDocs</a></td>
<td></td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_NewTopDocs_Lucene_Net_Search_ScoreDoc___System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.NewTopDocs(Lucene.Net.Search.ScoreDoc%5B%5D%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L82">View Source</a>
</span>
<a id="Lucene_Net_Search_TopDocsCollector_1_NewTopDocs_" data-uid="Lucene.Net.Search.TopDocsCollector`1.NewTopDocs*"></a>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_NewTopDocs_Lucene_Net_Search_ScoreDoc___System_Int32_" data-uid="Lucene.Net.Search.TopDocsCollector`1.NewTopDocs(Lucene.Net.Search.ScoreDoc[],System.Int32)">NewTopDocs(ScoreDoc[], Int32)</h4>
<div class="markdown level1 summary"><p>Returns a <a class="xref" href="Lucene.Net.Search.TopDocs.html">TopDocs</a> instance containing the given results. If
<code data-dev-comment-type="paramref" class="paramref">results</code> is <code>null</code> it means there are no results to return,
either because there were 0 calls to <a class="xref" href="Lucene.Net.Search.TopDocsCollector-1.html#Lucene_Net_Search_TopDocsCollector_1_Collect_System_Int32_">Collect(Int32)</a> or because the arguments to
<a class="xref" href="Lucene.Net.Search.TopDocs.html">TopDocs</a> were invalid.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected virtual TopDocs NewTopDocs(ScoreDoc[] results, int start)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Search.ScoreDoc.html">ScoreDoc</a>[]</td>
<td><span class="parametername">results</span></td>
<td></td>
</tr>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">start</span></td>
<td></td>
</tr>
</tbody>
</table>
<h5 class="returns">Returns</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Search.TopDocs.html">TopDocs</a></td>
<td></td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_PopulateResults_Lucene_Net_Search_ScoreDoc___System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.PopulateResults(Lucene.Net.Search.ScoreDoc%5B%5D%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L68">View Source</a>
</span>
<a id="Lucene_Net_Search_TopDocsCollector_1_PopulateResults_" data-uid="Lucene.Net.Search.TopDocsCollector`1.PopulateResults*"></a>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_PopulateResults_Lucene_Net_Search_ScoreDoc___System_Int32_" data-uid="Lucene.Net.Search.TopDocsCollector`1.PopulateResults(Lucene.Net.Search.ScoreDoc[],System.Int32)">PopulateResults(ScoreDoc[], Int32)</h4>
<div class="markdown level1 summary"><p>Populates the results array with the <a class="xref" href="Lucene.Net.Search.ScoreDoc.html">ScoreDoc</a> instances. This can be
overridden in case a different <a class="xref" href="Lucene.Net.Search.ScoreDoc.html">ScoreDoc</a> type should be returned.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">protected virtual void PopulateResults(ScoreDoc[] results, int howMany)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Search.ScoreDoc.html">ScoreDoc</a>[]</td>
<td><span class="parametername">results</span></td>
<td></td>
</tr>
<tr>
<td><span class="xref">System.Int32</span></td>
<td><span class="parametername">howMany</span></td>
<td></td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_SetNextReader_Lucene_Net_Index_AtomicReaderContext_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.SetNextReader(Lucene.Net.Index.AtomicReaderContext)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L221">View Source</a>
</span>
<a id="Lucene_Net_Search_TopDocsCollector_1_SetNextReader_" data-uid="Lucene.Net.Search.TopDocsCollector`1.SetNextReader*"></a>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_SetNextReader_Lucene_Net_Index_AtomicReaderContext_" data-uid="Lucene.Net.Search.TopDocsCollector`1.SetNextReader(Lucene.Net.Index.AtomicReaderContext)">SetNextReader(AtomicReaderContext)</h4>
<div class="markdown level1 summary"><p>Called before collecting from each <a class="xref" href="Lucene.Net.Index.AtomicReaderContext.html">AtomicReaderContext</a>. All doc ids in
<a class="xref" href="Lucene.Net.Search.TopDocsCollector-1.html#Lucene_Net_Search_TopDocsCollector_1_Collect_System_Int32_">Collect(Int32)</a> will correspond to <a class="xref" href="Lucene.Net.Index.IndexReaderContext.html#Lucene_Net_Index_IndexReaderContext_Reader">Reader</a>.
<p>
Add <a class="xref" href="Lucene.Net.Index.AtomicReaderContext.html#Lucene_Net_Index_AtomicReaderContext_DocBase">DocBase</a> to the current <a class="xref" href="Lucene.Net.Index.IndexReaderContext.html#Lucene_Net_Index_IndexReaderContext_Reader">Reader</a>&apos;s
internal document id to re-base ids in <a class="xref" href="Lucene.Net.Search.TopDocsCollector-1.html#Lucene_Net_Search_TopDocsCollector_1_Collect_System_Int32_">Collect(Int32)</a>.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public abstract void SetNextReader(AtomicReaderContext context)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Index.AtomicReaderContext.html">AtomicReaderContext</a></td>
<td><span class="parametername">context</span></td>
<td><p>Next atomic reader context </p>
</td>
</tr>
</tbody>
</table>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1_SetScorer_Lucene_Net_Search_Scorer_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601.SetScorer(Lucene.Net.Search.Scorer)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
</span>
<span class="small pull-right mobile-hide">
<a href="https://github.com/NightOwl888/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L196">View Source</a>
</span>
<a id="Lucene_Net_Search_TopDocsCollector_1_SetScorer_" data-uid="Lucene.Net.Search.TopDocsCollector`1.SetScorer*"></a>
<h4 id="Lucene_Net_Search_TopDocsCollector_1_SetScorer_Lucene_Net_Search_Scorer_" data-uid="Lucene.Net.Search.TopDocsCollector`1.SetScorer(Lucene.Net.Search.Scorer)">SetScorer(Scorer)</h4>
<div class="markdown level1 summary"><p>Called before successive calls to <a class="xref" href="Lucene.Net.Search.TopDocsCollector-1.html#Lucene_Net_Search_TopDocsCollector_1_Collect_System_Int32_">Collect(Int32)</a>. Implementations
that need the score of the current document (passed-in to
<a class="xref" href="Lucene.Net.Search.TopDocsCollector-1.html#Lucene_Net_Search_TopDocsCollector_1_Collect_System_Int32_">Collect(Int32)</a>), should save the passed-in <a class="xref" href="Lucene.Net.Search.Scorer.html">Scorer</a> and call
<a class="xref" href="Lucene.Net.Search.Scorer.html#Lucene_Net_Search_Scorer_GetScore">GetScore()</a> when needed.</p>
</div>
<div class="markdown level1 conceptual"></div>
<h5 class="decalaration">Declaration</h5>
<div class="codewrapper">
<pre><code class="lang-csharp hljs">public abstract void SetScorer(Scorer scorer)</code></pre>
</div>
<h5 class="parameters">Parameters</h5>
<table class="table table-bordered table-striped table-condensed">
<thead>
<tr>
<th>Type</th>
<th>Name</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a class="xref" href="Lucene.Net.Search.Scorer.html">Scorer</a></td>
<td><span class="parametername">scorer</span></td>
<td></td>
</tr>
</tbody>
</table>
<h3 id="implements">Implements</h3>
<div>
<a class="xref" href="Lucene.Net.Search.ITopDocsCollector.html">ITopDocsCollector</a>
</div>
<div>
<a class="xref" href="Lucene.Net.Search.ICollector.html">ICollector</a>
</div>
</article>
</div>
<div class="hidden-sm col-md-2" role="complementary">
<div class="sideaffix">
<div class="contribution">
<ul class="nav">
<li>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00010/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_TopDocsCollector_1.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.TopDocsCollector%601%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A" class="contribution-link">Improve this Doc</a>
</li>
<li>
<a href="https://github.com/apache/lucenenet/blob/release/Lucene.Net_4_8_0_beta00010/src/Lucene.Net/Search/TopDocsCollector.cs/#L36" class="contribution-link">View Source</a>
</li>
</ul>
</div>
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
<!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
</nav>
</div>
</div>
</div>
</div>
<footer>
<div class="grad-bottom"></div>
<div class="footer">
<div class="container">
<span class="pull-right">
<a href="#top">Back to top</a>
</span>
Copyright © 2020 Licensed to the Apache Software Foundation (ASF)
</div>
</div>
</footer>
</div>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.js"></script>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.js"></script>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.js"></script>
</body>
</html>