﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Interface IFieldCache
   | Apache Lucene.NET 4.8.0-beta00013 Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Interface IFieldCache
   | Apache Lucene.NET 4.8.0-beta00013 Documentation ">
    <meta name="generator" content="docfx 2.56.2.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">
    <span id="forkongithub"><a href="https://github.com/apache/lucenenet" target="_blank">Fork me on GitHub</a></span>
    <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.IFieldCache">
  
  
  <h1 id="Lucene_Net_Search_IFieldCache" data-uid="Lucene.Net.Search.IFieldCache" class="text-break">Interface IFieldCache
  </h1>
  <div class="markdown level0 summary"><p>Expert: Maintains caches of term values.</p>
<p><p>Created: May 19, 2004 11:13:14 AM
<p>
<div class="lucene-block lucene-internal">This is a Lucene.NET INTERNAL API, use at your own risk</div><p><p>
@since   lucene 1.4 </p>
</div>
  <div class="markdown level0 conceptual"></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_IFieldCache_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public interface IFieldCache</code></pre>
  </div>
  <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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_InfoStream.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.InfoStream%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L358">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_InfoStream_" data-uid="Lucene.Net.Search.IFieldCache.InfoStream*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_InfoStream" data-uid="Lucene.Net.Search.IFieldCache.InfoStream">InfoStream</h4>
  <div class="markdown level1 summary"><p>If non-null, <span class="xref">Lucene.Net.Search.FieldCacheImpl</span> will warn whenever
entries are created that are not sane according to
<a class="xref" href="Lucene.Net.Util.FieldCacheSanityChecker.html">FieldCacheSanityChecker</a>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">TextWriter InfoStream { get; set; }</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.IO.TextWriter</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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetBytes_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_IByteParser_System_Boolean_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetBytes(Lucene.Net.Index.AtomicReader%2CSystem.String%2CLucene.Net.Search.FieldCache.IByteParser%2CSystem.Boolean)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L82">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetBytes_" data-uid="Lucene.Net.Search.IFieldCache.GetBytes*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetBytes_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_IByteParser_System_Boolean_" data-uid="Lucene.Net.Search.IFieldCache.GetBytes(Lucene.Net.Index.AtomicReader,System.String,Lucene.Net.Search.FieldCache.IByteParser,System.Boolean)">GetBytes(AtomicReader, String, FieldCache.IByteParser, Boolean)</h4>
  <div class="markdown level1 summary"><p>Checks the internal cache for an appropriate entry, and if none is found,
reads the terms in <code data-dev-comment-type="paramref" class="paramref">field</code> as bytes and returns an array of
size <code>reader.MaxDoc</code> of the value each document has in the
given field. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[Obsolete(&quot;(4.4) Index as a numeric field using Int32Field and then use GetInt32s(AtomicReader, string, bool) instead.&quot;)]
FieldCache.Bytes GetBytes(AtomicReader reader, string field, FieldCache.IByteParser parser, bool setDocsWithField)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td><p>Used to get field values. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td><p>Which field contains the <span class="xref">System.Byte</span>s. </p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Lucene.Net.Search.FieldCache.IByteParser.html">FieldCache.IByteParser</a></td>
        <td><span class="parametername">parser</span></td>
        <td><p>Computes <span class="xref">System.Byte</span> for string values. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</span></td>
        <td><p>If true then <a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetDocsWithField_Lucene_Net_Index_AtomicReader_System_String_">GetDocsWithField(AtomicReader, String)</a> will
     also be computed and stored in the <a class="xref" href="Lucene.Net.Search.IFieldCache.html">IFieldCache</a>. </p>
</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.FieldCache.Bytes.html">FieldCache.Bytes</a></td>
        <td><p>The values in the given field for each document. </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IO.IOException</span></td>
        <td><p>If any error occurs. </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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetBytes_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetBytes(Lucene.Net.Index.AtomicReader%2CSystem.String%2CSystem.Boolean)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L67">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetBytes_" data-uid="Lucene.Net.Search.IFieldCache.GetBytes*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetBytes_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_" data-uid="Lucene.Net.Search.IFieldCache.GetBytes(Lucene.Net.Index.AtomicReader,System.String,System.Boolean)">GetBytes(AtomicReader, String, Boolean)</h4>
  <div class="markdown level1 summary"><p>Checks the internal cache for an appropriate entry, and if none is
found, reads the terms in <code data-dev-comment-type="paramref" class="paramref">field</code> as a single <span class="xref">System.Byte</span> and returns an array
of size <code>reader.MaxDoc</code> of the value each document
has in the given field. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[Obsolete(&quot;(4.4) Index as a numeric field using Int32Field and then use GetInt32s(AtomicReader, string, bool) instead.&quot;)]
FieldCache.Bytes GetBytes(AtomicReader reader, string field, bool setDocsWithField)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td><p>Used to get field values. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td><p>Which field contains the single <span class="xref">System.Byte</span> values. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</span></td>
        <td><p>If true then <a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetDocsWithField_Lucene_Net_Index_AtomicReader_System_String_">GetDocsWithField(AtomicReader, String)</a> will
     also be computed and stored in the <a class="xref" href="Lucene.Net.Search.IFieldCache.html">IFieldCache</a>. </p>
</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.FieldCache.Bytes.html">FieldCache.Bytes</a></td>
        <td><p>The values in the given field for each document. </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IO.IOException</span></td>
        <td><p>If any error occurs. </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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetCacheEntries.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetCacheEntries%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L328">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetCacheEntries_" data-uid="Lucene.Net.Search.IFieldCache.GetCacheEntries*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetCacheEntries" data-uid="Lucene.Net.Search.IFieldCache.GetCacheEntries">GetCacheEntries()</h4>
  <div class="markdown level1 summary"><p>EXPERT: Generates an array of <a class="xref" href="Lucene.Net.Search.FieldCache.CacheEntry.html">FieldCache.CacheEntry</a> objects representing all items
currently in the <a class="xref" href="Lucene.Net.Search.IFieldCache.html">IFieldCache</a>.
<p>
NOTE: These <a class="xref" href="Lucene.Net.Search.FieldCache.CacheEntry.html">FieldCache.CacheEntry</a> objects maintain a strong reference to the
Cached Values.  Maintaining references to a <a class="xref" href="Lucene.Net.Search.FieldCache.CacheEntry.html">FieldCache.CacheEntry</a> the <a class="xref" href="Lucene.Net.Index.AtomicReader.html">AtomicReader</a>
associated with it has garbage collected will prevent the Value itself
from being garbage collected when the Cache drops the <span class="xref">System.WeakReference</span>.
</p></p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div></div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">FieldCache.CacheEntry[] GetCacheEntries()</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.FieldCache.CacheEntry.html">FieldCache.CacheEntry</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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetDocsWithField_Lucene_Net_Index_AtomicReader_System_String_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetDocsWithField(Lucene.Net.Index.AtomicReader%2CSystem.String)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L54">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetDocsWithField_" data-uid="Lucene.Net.Search.IFieldCache.GetDocsWithField*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetDocsWithField_Lucene_Net_Index_AtomicReader_System_String_" data-uid="Lucene.Net.Search.IFieldCache.GetDocsWithField(Lucene.Net.Index.AtomicReader,System.String)">GetDocsWithField(AtomicReader, String)</h4>
  <div class="markdown level1 summary"><p>Checks the internal cache for an appropriate entry, and if none is found,
reads the terms in <code data-dev-comment-type="paramref" class="paramref">field</code> and returns a bit set at the size of
<code>reader.MaxDoc</code>, with turned on bits for each docid that
does have a value for this field.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">IBits GetDocsWithField(AtomicReader reader, string field)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</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.Util.IBits.html">IBits</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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetDocTermOrds_Lucene_Net_Index_AtomicReader_System_String_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetDocTermOrds(Lucene.Net.Index.AtomicReader%2CSystem.String)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L313">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetDocTermOrds_" data-uid="Lucene.Net.Search.IFieldCache.GetDocTermOrds*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetDocTermOrds_Lucene_Net_Index_AtomicReader_System_String_" data-uid="Lucene.Net.Search.IFieldCache.GetDocTermOrds(Lucene.Net.Index.AtomicReader,System.String)">GetDocTermOrds(AtomicReader, String)</h4>
  <div class="markdown level1 summary"><p>Checks the internal cache for an appropriate entry, and if none is found, reads the term values
in <code data-dev-comment-type="paramref" class="paramref">field</code> and returns a <a class="xref" href="Lucene.Net.Index.SortedSetDocValues.html">SortedSetDocValues</a> instance, providing a method to retrieve
the terms (as ords) per document.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">SortedSetDocValues GetDocTermOrds(AtomicReader reader, string field)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td><p>Used to build a <a class="xref" href="Lucene.Net.Index.SortedSetDocValues.html">SortedSetDocValues</a> instance </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td><p>Which field contains the strings. </p>
</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.Index.SortedSetDocValues.html">SortedSetDocValues</a></td>
        <td><p>a <a class="xref" href="Lucene.Net.Index.SortedSetDocValues.html">SortedSetDocValues</a> instance </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IO.IOException</span></td>
        <td><p>If any error occurs. </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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetDoubles_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_IDoubleParser_System_Boolean_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetDoubles(Lucene.Net.Index.AtomicReader%2CSystem.String%2CLucene.Net.Search.FieldCache.IDoubleParser%2CSystem.Boolean)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L258">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetDoubles_" data-uid="Lucene.Net.Search.IFieldCache.GetDoubles*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetDoubles_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_IDoubleParser_System_Boolean_" data-uid="Lucene.Net.Search.IFieldCache.GetDoubles(Lucene.Net.Index.AtomicReader,System.String,Lucene.Net.Search.FieldCache.IDoubleParser,System.Boolean)">GetDoubles(AtomicReader, String, FieldCache.IDoubleParser, Boolean)</h4>
  <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Lucene.Net.Search.FieldCache.Doubles.html">FieldCache.Doubles</a> over the values found in documents in the given
field. If the field was indexed as <a class="xref" href="Lucene.Net.Documents.NumericDocValuesField.html">NumericDocValuesField</a>, it simply
uses <a class="xref" href="Lucene.Net.Index.AtomicReader.html#Lucene_Net_Index_AtomicReader_GetNumericDocValues_System_String_">GetNumericDocValues(String)</a> to read the values.
Otherwise, it checks the internal cache for an appropriate entry, and if
none is found, reads the terms in <code data-dev-comment-type="paramref" class="paramref">field</code> as <span class="xref">System.Double</span>s and returns
an array of size <code>reader.MaxDoc</code> of the value each document
has in the given field.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">FieldCache.Doubles GetDoubles(AtomicReader reader, string field, FieldCache.IDoubleParser parser, bool setDocsWithField)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td><p>Used to get field values. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td><p>Which field contains the <span class="xref">System.Double</span>s. </p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Lucene.Net.Search.FieldCache.IDoubleParser.html">FieldCache.IDoubleParser</a></td>
        <td><span class="parametername">parser</span></td>
        <td><p>Computes <span class="xref">System.Double</span> for string values. May be <code>null</code> if the
requested field was indexed as <a class="xref" href="Lucene.Net.Documents.NumericDocValuesField.html">NumericDocValuesField</a> or
<a class="xref" href="Lucene.Net.Documents.DoubleField.html">DoubleField</a>. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</span></td>
        <td><p>If true then <a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetDocsWithField_Lucene_Net_Index_AtomicReader_System_String_">GetDocsWithField(AtomicReader, String)</a> will also be computed and
stored in the <a class="xref" href="Lucene.Net.Search.IFieldCache.html">IFieldCache</a>. </p>
</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.FieldCache.Doubles.html">FieldCache.Doubles</a></td>
        <td><p>The values in the given field for each document. </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IO.IOException</span></td>
        <td><p>If any error occurs. </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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetDoubles_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetDoubles(Lucene.Net.Index.AtomicReader%2CSystem.String%2CSystem.Boolean)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L233">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetDoubles_" data-uid="Lucene.Net.Search.IFieldCache.GetDoubles*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetDoubles_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_" data-uid="Lucene.Net.Search.IFieldCache.GetDoubles(Lucene.Net.Index.AtomicReader,System.String,System.Boolean)">GetDoubles(AtomicReader, String, Boolean)</h4>
  <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Lucene.Net.Search.FieldCache.Doubles.html">FieldCache.Doubles</a> over the values found in documents in the given
field.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">FieldCache.Doubles GetDoubles(AtomicReader reader, string field, bool setDocsWithField)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</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.FieldCache.Doubles.html">FieldCache.Doubles</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Lucene_Net_Search_IFieldCache_GetDoubles_Lucene_Net_Index_AtomicReader_System_String_System_Boolean__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetDoubles_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_IDoubleParser_System_Boolean_">GetDoubles(AtomicReader, String, FieldCache.IDoubleParser, Boolean)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetInt16s_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_IInt16Parser_System_Boolean_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetInt16s(Lucene.Net.Index.AtomicReader%2CSystem.String%2CLucene.Net.Search.FieldCache.IInt16Parser%2CSystem.Boolean)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L117">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetInt16s_" data-uid="Lucene.Net.Search.IFieldCache.GetInt16s*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetInt16s_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_IInt16Parser_System_Boolean_" data-uid="Lucene.Net.Search.IFieldCache.GetInt16s(Lucene.Net.Index.AtomicReader,System.String,Lucene.Net.Search.FieldCache.IInt16Parser,System.Boolean)">GetInt16s(AtomicReader, String, FieldCache.IInt16Parser, Boolean)</h4>
  <div class="markdown level1 summary"><p>Checks the internal cache for an appropriate entry, and if none is found,
reads the terms in <code data-dev-comment-type="paramref" class="paramref">field</code> as shorts and returns an array of
size <code>reader.MaxDoc</code> of the value each document has in the
given field. 
<p>
NOTE: this was getShorts() in Lucene</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[Obsolete(&quot;(4.4) Index as a numeric field using Int32Field and then use GetInt32s(AtomicReader, string, bool) instead.&quot;)]
FieldCache.Int16s GetInt16s(AtomicReader reader, string field, FieldCache.IInt16Parser parser, bool setDocsWithField)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td><p>Used to get field values. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td><p>Which field contains the <span class="xref">System.Int16</span>s. </p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Lucene.Net.Search.FieldCache.IInt16Parser.html">FieldCache.IInt16Parser</a></td>
        <td><span class="parametername">parser</span></td>
        <td><p>Computes <span class="xref">System.Int16</span> for string values. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</span></td>
        <td><p>If true then <a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetDocsWithField_Lucene_Net_Index_AtomicReader_System_String_">GetDocsWithField(AtomicReader, String)</a> will
     also be computed and stored in the <a class="xref" href="Lucene.Net.Search.IFieldCache.html">IFieldCache</a>. </p>
</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.FieldCache.Int16s.html">FieldCache.Int16s</a></td>
        <td><p>The values in the given field for each document. </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IO.IOException</span></td>
        <td><p>If any error occurs. </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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetInt16s_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetInt16s(Lucene.Net.Index.AtomicReader%2CSystem.String%2CSystem.Boolean)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L99">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetInt16s_" data-uid="Lucene.Net.Search.IFieldCache.GetInt16s*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetInt16s_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_" data-uid="Lucene.Net.Search.IFieldCache.GetInt16s(Lucene.Net.Index.AtomicReader,System.String,System.Boolean)">GetInt16s(AtomicReader, String, Boolean)</h4>
  <div class="markdown level1 summary"><p>Checks the internal cache for an appropriate entry, and if none is
found, reads the terms in <code data-dev-comment-type="paramref" class="paramref">field</code> as <span class="xref">System.Int16</span>s and returns an array
of size <code>reader.MaxDoc</code> of the value each document
has in the given field. 
<p>
NOTE: this was getShorts() in Lucene</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[Obsolete(&quot;(4.4) Index as a numeric field using Int32Field and then use GetInt32s(AtomicReader, string, bool) instead.&quot;)]
FieldCache.Int16s GetInt16s(AtomicReader reader, string field, bool setDocsWithField)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td><p>Used to get field values. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td><p>Which field contains the <span class="xref">System.Int16</span>s. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</span></td>
        <td><p>If true then <a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetDocsWithField_Lucene_Net_Index_AtomicReader_System_String_">GetDocsWithField(AtomicReader, String)</a> will
     also be computed and stored in the <a class="xref" href="Lucene.Net.Search.IFieldCache.html">IFieldCache</a>. </p>
</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.FieldCache.Int16s.html">FieldCache.Int16s</a></td>
        <td><p>The values in the given field for each document. </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IO.IOException</span></td>
        <td><p>If any error occurs. </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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetInt32s_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_IInt32Parser_System_Boolean_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetInt32s(Lucene.Net.Index.AtomicReader%2CSystem.String%2CLucene.Net.Search.FieldCache.IInt32Parser%2CSystem.Boolean)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L154">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetInt32s_" data-uid="Lucene.Net.Search.IFieldCache.GetInt32s*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetInt32s_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_IInt32Parser_System_Boolean_" data-uid="Lucene.Net.Search.IFieldCache.GetInt32s(Lucene.Net.Index.AtomicReader,System.String,Lucene.Net.Search.FieldCache.IInt32Parser,System.Boolean)">GetInt32s(AtomicReader, String, FieldCache.IInt32Parser, Boolean)</h4>
  <div class="markdown level1 summary"><p>Returns an <a class="xref" href="Lucene.Net.Search.FieldCache.Int32s.html">FieldCache.Int32s</a> over the values found in documents in the given
field. If the field was indexed as <a class="xref" href="Lucene.Net.Documents.NumericDocValuesField.html">NumericDocValuesField</a>, it simply
uses <a class="xref" href="Lucene.Net.Index.AtomicReader.html#Lucene_Net_Index_AtomicReader_GetNumericDocValues_System_String_">GetNumericDocValues(String)</a> to read the values.
Otherwise, it checks the internal cache for an appropriate entry, and if
none is found, reads the terms in <code data-dev-comment-type="paramref" class="paramref">field</code> as <span class="xref">System.Int32</span>s and returns
an array of size <code>reader.MaxDoc</code> of the value each document
has in the given field.
<p>
NOTE: this was getInts() in Lucene</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">FieldCache.Int32s GetInt32s(AtomicReader reader, string field, FieldCache.IInt32Parser parser, bool setDocsWithField)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td><p>Used to get field values. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td><p>Which field contains the <span class="xref">System.Int32</span>s. </p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Lucene.Net.Search.FieldCache.IInt32Parser.html">FieldCache.IInt32Parser</a></td>
        <td><span class="parametername">parser</span></td>
        <td><p>Computes <span class="xref">System.Int32</span> for string values. May be <code>null</code> if the
requested field was indexed as <a class="xref" href="Lucene.Net.Documents.NumericDocValuesField.html">NumericDocValuesField</a> or
<a class="xref" href="Lucene.Net.Documents.Int32Field.html">Int32Field</a>. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</span></td>
        <td><p>If true then <a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetDocsWithField_Lucene_Net_Index_AtomicReader_System_String_">GetDocsWithField(AtomicReader, String)</a> will also be computed and
stored in the <a class="xref" href="Lucene.Net.Search.IFieldCache.html">IFieldCache</a>. </p>
</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.FieldCache.Int32s.html">FieldCache.Int32s</a></td>
        <td><p>The values in the given field for each document. </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IO.IOException</span></td>
        <td><p>If any error occurs. </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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetInt32s_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetInt32s(Lucene.Net.Index.AtomicReader%2CSystem.String%2CSystem.Boolean)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L127">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetInt32s_" data-uid="Lucene.Net.Search.IFieldCache.GetInt32s*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetInt32s_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_" data-uid="Lucene.Net.Search.IFieldCache.GetInt32s(Lucene.Net.Index.AtomicReader,System.String,System.Boolean)">GetInt32s(AtomicReader, String, Boolean)</h4>
  <div class="markdown level1 summary"><p>Returns an <a class="xref" href="Lucene.Net.Search.FieldCache.Int32s.html">FieldCache.Int32s</a> over the values found in documents in the given
field.
<p>
NOTE: this was getInts() in Lucene</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">FieldCache.Int32s GetInt32s(AtomicReader reader, string field, bool setDocsWithField)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</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.FieldCache.Int32s.html">FieldCache.Int32s</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Lucene_Net_Search_IFieldCache_GetInt32s_Lucene_Net_Index_AtomicReader_System_String_System_Boolean__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetInt32s_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_IInt32Parser_System_Boolean_">GetInt32s(AtomicReader, String, FieldCache.IInt32Parser, Boolean)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetInt64s_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_IInt64Parser_System_Boolean_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetInt64s(Lucene.Net.Index.AtomicReader%2CSystem.String%2CLucene.Net.Search.FieldCache.IInt64Parser%2CSystem.Boolean)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L226">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetInt64s_" data-uid="Lucene.Net.Search.IFieldCache.GetInt64s*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetInt64s_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_IInt64Parser_System_Boolean_" data-uid="Lucene.Net.Search.IFieldCache.GetInt64s(Lucene.Net.Index.AtomicReader,System.String,Lucene.Net.Search.FieldCache.IInt64Parser,System.Boolean)">GetInt64s(AtomicReader, String, FieldCache.IInt64Parser, Boolean)</h4>
  <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Lucene.Net.Search.FieldCache.Int64s.html">FieldCache.Int64s</a> over the values found in documents in the given
field. If the field was indexed as <a class="xref" href="Lucene.Net.Documents.NumericDocValuesField.html">NumericDocValuesField</a>, it simply
uses <a class="xref" href="Lucene.Net.Index.AtomicReader.html#Lucene_Net_Index_AtomicReader_GetNumericDocValues_System_String_">GetNumericDocValues(String)</a> to read the values.
Otherwise, it checks the internal cache for an appropriate entry, and if
none is found, reads the terms in <code data-dev-comment-type="paramref" class="paramref">field</code> as <span class="xref">System.Int64</span>s and returns
an array of size <code>reader.MaxDoc</code> of the value each document
has in the given field.
<p>
NOTE: this was getLongs() in Lucene</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">FieldCache.Int64s GetInt64s(AtomicReader reader, string field, FieldCache.IInt64Parser parser, bool setDocsWithField)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td><p>Used to get field values. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td><p>Which field contains the <span class="xref">System.Int64</span>s. </p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Lucene.Net.Search.FieldCache.IInt64Parser.html">FieldCache.IInt64Parser</a></td>
        <td><span class="parametername">parser</span></td>
        <td><p>Computes <span class="xref">System.Int64</span> for string values. May be <code>null</code> if the
requested field was indexed as <a class="xref" href="Lucene.Net.Documents.NumericDocValuesField.html">NumericDocValuesField</a> or
<a class="xref" href="Lucene.Net.Documents.Int64Field.html">Int64Field</a>. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</span></td>
        <td><p>If true then <a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetDocsWithField_Lucene_Net_Index_AtomicReader_System_String_">GetDocsWithField(AtomicReader, String)</a> will also be computed and
stored in the <a class="xref" href="Lucene.Net.Search.IFieldCache.html">IFieldCache</a>. </p>
</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.FieldCache.Int64s.html">FieldCache.Int64s</a></td>
        <td><p>The values in the given field for each document. </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IO.IOException</span></td>
        <td><p>If any error occurs. </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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetInt64s_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetInt64s(Lucene.Net.Index.AtomicReader%2CSystem.String%2CSystem.Boolean)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L199">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetInt64s_" data-uid="Lucene.Net.Search.IFieldCache.GetInt64s*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetInt64s_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_" data-uid="Lucene.Net.Search.IFieldCache.GetInt64s(Lucene.Net.Index.AtomicReader,System.String,System.Boolean)">GetInt64s(AtomicReader, String, Boolean)</h4>
  <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Lucene.Net.Search.FieldCache.Int64s.html">FieldCache.Int64s</a> over the values found in documents in the given
field.
<p>
NOTE: this was getLongs() in Lucene</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">FieldCache.Int64s GetInt64s(AtomicReader reader, string field, bool setDocsWithField)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</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.FieldCache.Int64s.html">FieldCache.Int64s</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Lucene_Net_Search_IFieldCache_GetInt64s_Lucene_Net_Index_AtomicReader_System_String_System_Boolean__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetInt64s_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_IInt64Parser_System_Boolean_">GetInt64s(AtomicReader, String, FieldCache.IInt64Parser, Boolean)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetSingles_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_ISingleParser_System_Boolean_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetSingles(Lucene.Net.Index.AtomicReader%2CSystem.String%2CLucene.Net.Search.FieldCache.ISingleParser%2CSystem.Boolean)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L190">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetSingles_" data-uid="Lucene.Net.Search.IFieldCache.GetSingles*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetSingles_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_ISingleParser_System_Boolean_" data-uid="Lucene.Net.Search.IFieldCache.GetSingles(Lucene.Net.Index.AtomicReader,System.String,Lucene.Net.Search.FieldCache.ISingleParser,System.Boolean)">GetSingles(AtomicReader, String, FieldCache.ISingleParser, Boolean)</h4>
  <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Lucene.Net.Search.FieldCache.Singles.html">FieldCache.Singles</a> over the values found in documents in the given
field. If the field was indexed as <a class="xref" href="Lucene.Net.Documents.NumericDocValuesField.html">NumericDocValuesField</a>, it simply
uses <a class="xref" href="Lucene.Net.Index.AtomicReader.html#Lucene_Net_Index_AtomicReader_GetNumericDocValues_System_String_">GetNumericDocValues(String)</a> to read the values.
Otherwise, it checks the internal cache for an appropriate entry, and if
none is found, reads the terms in <code data-dev-comment-type="paramref" class="paramref">field</code> as <span class="xref">System.Single</span>s and returns
an array of size <code>reader.MaxDoc</code> of the value each document
has in the given field.
<p>
NOTE: this was getFloats() in Lucene</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">FieldCache.Singles GetSingles(AtomicReader reader, string field, FieldCache.ISingleParser parser, bool setDocsWithField)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td><p>Used to get field values. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td><p>Which field contains the <span class="xref">System.Single</span>s. </p>
</td>
      </tr>
      <tr>
        <td><a class="xref" href="Lucene.Net.Search.FieldCache.ISingleParser.html">FieldCache.ISingleParser</a></td>
        <td><span class="parametername">parser</span></td>
        <td><p>Computes <span class="xref">System.Single</span> for string values. May be <code>null</code> if the
requested field was indexed as <a class="xref" href="Lucene.Net.Documents.NumericDocValuesField.html">NumericDocValuesField</a> or
<a class="xref" href="Lucene.Net.Documents.SingleField.html">SingleField</a>. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</span></td>
        <td><p>If true then <a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetDocsWithField_Lucene_Net_Index_AtomicReader_System_String_">GetDocsWithField(AtomicReader, String)</a> will also be computed and
stored in the <a class="xref" href="Lucene.Net.Search.IFieldCache.html">IFieldCache</a>. </p>
</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.FieldCache.Singles.html">FieldCache.Singles</a></td>
        <td><p>The values in the given field for each document. </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IO.IOException</span></td>
        <td><p>If any error occurs. </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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetSingles_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetSingles(Lucene.Net.Index.AtomicReader%2CSystem.String%2CSystem.Boolean)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L163">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetSingles_" data-uid="Lucene.Net.Search.IFieldCache.GetSingles*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetSingles_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_" data-uid="Lucene.Net.Search.IFieldCache.GetSingles(Lucene.Net.Index.AtomicReader,System.String,System.Boolean)">GetSingles(AtomicReader, String, Boolean)</h4>
  <div class="markdown level1 summary"><p>Returns a <a class="xref" href="Lucene.Net.Search.FieldCache.Singles.html">FieldCache.Singles</a> over the values found in documents in the given
field.
<p>
NOTE: this was getFloats() in Lucene</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">FieldCache.Singles GetSingles(AtomicReader reader, string field, bool setDocsWithField)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</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.FieldCache.Singles.html">FieldCache.Singles</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Lucene_Net_Search_IFieldCache_GetSingles_Lucene_Net_Index_AtomicReader_System_String_System_Boolean__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetSingles_Lucene_Net_Index_AtomicReader_System_String_Lucene_Net_Search_FieldCache_ISingleParser_System_Boolean_">GetSingles(AtomicReader, String, FieldCache.ISingleParser, Boolean)</a></div>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetTerms_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetTerms(Lucene.Net.Index.AtomicReader%2CSystem.String%2CSystem.Boolean)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L271">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetTerms_" data-uid="Lucene.Net.Search.IFieldCache.GetTerms*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetTerms_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_" data-uid="Lucene.Net.Search.IFieldCache.GetTerms(Lucene.Net.Index.AtomicReader,System.String,System.Boolean)">GetTerms(AtomicReader, String, Boolean)</h4>
  <div class="markdown level1 summary"><p>Checks the internal cache for an appropriate entry, and if none
is found, reads the term values in <code data-dev-comment-type="paramref" class="paramref">field</code>
and returns a <a class="xref" href="Lucene.Net.Index.BinaryDocValues.html">BinaryDocValues</a> instance, providing a
method to retrieve the term (as a <a class="xref" href="Lucene.Net.Util.BytesRef.html">BytesRef</a>) per document. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">BinaryDocValues GetTerms(AtomicReader reader, string field, bool setDocsWithField)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td><p>Used to get field values. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td><p>Which field contains the strings. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</span></td>
        <td><p>If true then <a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetDocsWithField_Lucene_Net_Index_AtomicReader_System_String_">GetDocsWithField(AtomicReader, String)</a> will
     also be computed and stored in the <a class="xref" href="Lucene.Net.Search.IFieldCache.html">IFieldCache</a>. </p>
</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.Index.BinaryDocValues.html">BinaryDocValues</a></td>
        <td><p>The values in the given field for each document. </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IO.IOException</span></td>
        <td><p>If any error occurs. </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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetTerms_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_System_Single_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetTerms(Lucene.Net.Index.AtomicReader%2CSystem.String%2CSystem.Boolean%2CSystem.Single)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L280">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetTerms_" data-uid="Lucene.Net.Search.IFieldCache.GetTerms*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetTerms_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_System_Single_" data-uid="Lucene.Net.Search.IFieldCache.GetTerms(Lucene.Net.Index.AtomicReader,System.String,System.Boolean,System.Single)">GetTerms(AtomicReader, String, Boolean, Single)</h4>
  <div class="markdown level1 summary"><p>Expert: just like <a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetTerms_Lucene_Net_Index_AtomicReader_System_String_System_Boolean_">GetTerms(AtomicReader, String, Boolean)</a>,
but you can specify whether more RAM should be consumed in exchange for
faster lookups (default is &quot;true&quot;).  Note that the
first call for a given reader and field &quot;wins&quot;,
subsequent calls will share the same cache entry.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">BinaryDocValues GetTerms(AtomicReader reader, string field, bool setDocsWithField, float acceptableOverheadRatio)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td><span class="parametername">setDocsWithField</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Single</span></td>
        <td><span class="parametername">acceptableOverheadRatio</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.Index.BinaryDocValues.html">BinaryDocValues</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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetTermsIndex_Lucene_Net_Index_AtomicReader_System_String_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetTermsIndex(Lucene.Net.Index.AtomicReader%2CSystem.String)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L292">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetTermsIndex_" data-uid="Lucene.Net.Search.IFieldCache.GetTermsIndex*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetTermsIndex_Lucene_Net_Index_AtomicReader_System_String_" data-uid="Lucene.Net.Search.IFieldCache.GetTermsIndex(Lucene.Net.Index.AtomicReader,System.String)">GetTermsIndex(AtomicReader, String)</h4>
  <div class="markdown level1 summary"><p>Checks the internal cache for an appropriate entry, and if none
is found, reads the term values in <code data-dev-comment-type="paramref" class="paramref">field</code>
and returns a <a class="xref" href="Lucene.Net.Index.SortedDocValues.html">SortedDocValues</a> instance,
providing methods to retrieve sort ordinals and terms
(as a <a class="xref" href="Lucene.Net.Util.BytesRef.html">BytesRef</a>) per document. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">SortedDocValues GetTermsIndex(AtomicReader reader, string field)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td><p>Used to get field values. </p>
</td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td><p>Which field contains the strings. </p>
</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.Index.SortedDocValues.html">SortedDocValues</a></td>
        <td><p>The values in the given field for each document. </p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="exceptions">Exceptions</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Condition</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.IO.IOException</span></td>
        <td><p>If any error occurs. </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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_GetTermsIndex_Lucene_Net_Index_AtomicReader_System_String_System_Single_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.GetTermsIndex(Lucene.Net.Index.AtomicReader%2CSystem.String%2CSystem.Single)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L302">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_GetTermsIndex_" data-uid="Lucene.Net.Search.IFieldCache.GetTermsIndex*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_GetTermsIndex_Lucene_Net_Index_AtomicReader_System_String_System_Single_" data-uid="Lucene.Net.Search.IFieldCache.GetTermsIndex(Lucene.Net.Index.AtomicReader,System.String,System.Single)">GetTermsIndex(AtomicReader, String, Single)</h4>
  <div class="markdown level1 summary"><p>Expert: just like 
<a class="xref" href="Lucene.Net.Search.IFieldCache.html#Lucene_Net_Search_IFieldCache_GetTermsIndex_Lucene_Net_Index_AtomicReader_System_String_">GetTermsIndex(AtomicReader, String)</a>, but you can specify
whether more RAM should be consumed in exchange for
faster lookups (default is &quot;true&quot;).  Note that the
first call for a given reader and field &quot;wins&quot;,
subsequent calls will share the same cache entry.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">SortedDocValues GetTermsIndex(AtomicReader reader, string field, float acceptableOverheadRatio)</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.AtomicReader.html">AtomicReader</a></td>
        <td><span class="parametername">reader</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">field</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Single</span></td>
        <td><span class="parametername">acceptableOverheadRatio</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.Index.SortedDocValues.html">SortedDocValues</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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_PurgeAllCaches.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.PurgeAllCaches%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L341">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_PurgeAllCaches_" data-uid="Lucene.Net.Search.IFieldCache.PurgeAllCaches*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_PurgeAllCaches" data-uid="Lucene.Net.Search.IFieldCache.PurgeAllCaches">PurgeAllCaches()</h4>
  <div class="markdown level1 summary"><p><p>
EXPERT: Instructs the FieldCache to forcibly expunge all entries
from the underlying caches.  This is intended only to be used for
test methods as a way to ensure a known base state of the Cache
(with out needing to rely on GC to free <span class="xref">System.WeakReference</span>s).
It should not be relied on for &quot;Cache maintenance&quot; in general
application code.
</p></p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div></div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void PurgeAllCaches()</code></pre>
  </div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache_PurgeByCacheKey_System_Object_.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache.PurgeByCacheKey(System.Object)%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L351">View Source</a>
  </span>
  <a id="Lucene_Net_Search_IFieldCache_PurgeByCacheKey_" data-uid="Lucene.Net.Search.IFieldCache.PurgeByCacheKey*"></a>
  <h4 id="Lucene_Net_Search_IFieldCache_PurgeByCacheKey_System_Object_" data-uid="Lucene.Net.Search.IFieldCache.PurgeByCacheKey(System.Object)">PurgeByCacheKey(Object)</h4>
  <div class="markdown level1 summary"><p>Expert: drops all cache entries associated with this
reader <a class="xref" href="Lucene.Net.Index.IndexReader.html#Lucene_Net_Index_IndexReader_CoreCacheKey">CoreCacheKey</a>.  NOTE: this cache key must
precisely match the reader that the cache entry is
keyed on. If you pass a top-level reader, it usually
will have no effect as Lucene now caches at the segment
reader level.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">void PurgeByCacheKey(object coreCacheKey)</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.Object</span></td>
        <td><span class="parametername">coreCacheKey</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="seealso">See Also</h3>
  <div class="seealso">
      <div><a class="xref" href="Lucene.Net.Util.FieldCacheSanityChecker.html">FieldCacheSanityChecker</a></div>
  </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-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Search_IFieldCache.md&amp;value=---%0Auid%3A%20Lucene.Net.Search.IFieldCache%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/fix/apidocs-layout/src/Lucene.Net/Search/FieldCache.cs/#L46" 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 The Apache Software Foundation, Licensed under the <a href='http://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache License, Version 2.0</a><br> <small>Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation. <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</small>
            
          </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>
