﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Namespace Lucene.Net.Codecs.BlockTerms
   | Apache Lucene.NET 4.8.0-beta00008 Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Namespace Lucene.Net.Codecs.BlockTerms
   | Apache Lucene.NET 4.8.0-beta00008 Documentation ">
    <meta name="generator" content="docfx 2.50.0.0">
    
    <link rel="shortcut icon" href="../../logo/favicon.ico">
    <link rel="stylesheet" href="../../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../../styles/docfx.css">
    <link rel="stylesheet" href="../../styles/main.css">
    <meta property="docfx:navrel" content="../../toc.html">
    <meta property="docfx:tocrel" content="../toc.html">
    
    <meta property="docfx:rel" content="../../">
    
  </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="../../index.html">
                <img id="logo" class="svg" src="../../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" id="breadcrumb">
            <ul class="breadcrumb">
              <li></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.Codecs.BlockTerms">
  
  <h1 id="Lucene_Net_Codecs_BlockTerms" data-uid="Lucene.Net.Codecs.BlockTerms" class="text-break">Namespace Lucene.Net.Codecs.BlockTerms
  </h1>
  <div class="markdown level0 summary"><!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->
<p>Pluggable term index / block terms dictionary implementations.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="markdown level0 remarks"></div>
    <h3 id="classes">Classes
  </h3>
      <h4><a class="xref" href="Lucene.Net.Codecs.BlockTerms.BlockTermsReader.html">BlockTermsReader</a></h4>
      <section><p>Handles a terms dict, but decouples all details of
doc/freqs/positions reading to an instance of 
<a class="xref" href="../Lucene.Net/Lucene.Net.Codecs.PostingsReaderBase.html">PostingsReaderBase</a>.  This class is reusable for
codecs that use a different format for
docs/freqs/positions (though codecs are also free to
make their own terms dict impl).
<p>
This class also interacts with an instance of
<a class="xref" href="Lucene.Net.Codecs.BlockTerms.TermsIndexReaderBase.html">TermsIndexReaderBase</a>, to abstract away the specific
implementation of the terms dict index. 
<p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div></section>
      <h4><a class="xref" href="Lucene.Net.Codecs.BlockTerms.BlockTermsWriter.html">BlockTermsWriter</a></h4>
      <section><p>Writes terms dict, block-encoding (column stride) each term&apos;s metadata 
for each set of terms between two index terms.
<p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div></section>
      <h4><a class="xref" href="Lucene.Net.Codecs.BlockTerms.FixedGapTermsIndexReader.html">FixedGapTermsIndexReader</a></h4>
      <section><p><a class="xref" href="Lucene.Net.Codecs.BlockTerms.TermsIndexReaderBase.html">TermsIndexReaderBase</a> for simple every Nth terms indexes.
<p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div></section>
      <h4><a class="xref" href="Lucene.Net.Codecs.BlockTerms.FixedGapTermsIndexWriter.html">FixedGapTermsIndexWriter</a></h4>
      <section><p>Selects every Nth term as and index term, and hold term
bytes (mostly) fully expanded in memory.  This terms index
supports seeking by ord.  See 
<a class="xref" href="Lucene.Net.Codecs.BlockTerms.VariableGapTermsIndexWriter.html">VariableGapTermsIndexWriter</a> for a more memory efficient
terms index that does not support seeking by ord.
<p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div></section>
      <h4><a class="xref" href="Lucene.Net.Codecs.BlockTerms.TermsIndexReaderBase.html">TermsIndexReaderBase</a></h4>
      <section><p><a class="xref" href="Lucene.Net.Codecs.BlockTerms.BlockTermsReader.html">BlockTermsReader</a> interacts with an instance of this class
to manage its terms index.  The writer must accept
indexed terms (many pairs of <a class="xref" href="../Lucene.Net/Lucene.Net.Util.BytesRef.html">BytesRef</a> text + long
fileOffset), and then this reader must be able to
retrieve the nearest index term to a provided term
text. 
<p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div></section>
      <h4><a class="xref" href="Lucene.Net.Codecs.BlockTerms.TermsIndexReaderBase.FieldIndexEnum.html">TermsIndexReaderBase.FieldIndexEnum</a></h4>
      <section><p>Similar to <a class="xref" href="../Lucene.Net/Lucene.Net.Index.TermsEnum.html">TermsEnum</a>, except, the only &quot;metadata&quot; it
reports for a given indexed term is the long fileOffset
into the main terms dictionary file.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Codecs.BlockTerms.TermsIndexWriterBase.html">TermsIndexWriterBase</a></h4>
      <section><p>Base class for terms index implementations to plug
into <a class="xref" href="Lucene.Net.Codecs.BlockTerms.BlockTermsWriter.html">BlockTermsWriter</a>.
<p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div><p>
</section>
      <h4><a class="xref" href="Lucene.Net.Codecs.BlockTerms.TermsIndexWriterBase.FieldWriter.html">TermsIndexWriterBase.FieldWriter</a></h4>
      <section><p>Terms index API for a single field.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Codecs.BlockTerms.VariableGapTermsIndexReader.html">VariableGapTermsIndexReader</a></h4>
      <section><p>See <a class="xref" href="Lucene.Net.Codecs.BlockTerms.VariableGapTermsIndexWriter.html">VariableGapTermsIndexWriter</a>.
<p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div></section>
      <h4><a class="xref" href="Lucene.Net.Codecs.BlockTerms.VariableGapTermsIndexWriter.html">VariableGapTermsIndexWriter</a></h4>
      <section><p>Selects index terms according to provided pluggable
<a class="xref" href="Lucene.Net.Codecs.BlockTerms.VariableGapTermsIndexWriter.IndexTermSelector.html">VariableGapTermsIndexWriter.IndexTermSelector</a>, and stores them in a prefix trie that&apos;s
loaded entirely in RAM stored as an <a class="xref" href="../Lucene.Net/Lucene.Net.Util.Fst.FST-1.html">FST&lt;T&gt;</a>.  This terms
index only supports unsigned byte term sort order
(unicode codepoint order when the bytes are UTF8).
<p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div></section>
      <h4><a class="xref" href="Lucene.Net.Codecs.BlockTerms.VariableGapTermsIndexWriter.EveryNOrDocFreqTermSelector.html">VariableGapTermsIndexWriter.EveryNOrDocFreqTermSelector</a></h4>
      <section><p>Sets an index term when docFreq &gt;= docFreqThresh, or
every interval terms.  This should reduce seek time
to high docFreq terms. </p>
</section>
      <h4><a class="xref" href="Lucene.Net.Codecs.BlockTerms.VariableGapTermsIndexWriter.EveryNTermSelector.html">VariableGapTermsIndexWriter.EveryNTermSelector</a></h4>
      <section></section>
      <h4><a class="xref" href="Lucene.Net.Codecs.BlockTerms.VariableGapTermsIndexWriter.IndexTermSelector.html">VariableGapTermsIndexWriter.IndexTermSelector</a></h4>
      <section><p>Hook for selecting which terms should be placed in the terms index.
<p>
<a class="xref" href="Lucene.Net.Codecs.BlockTerms.VariableGapTermsIndexWriter.IndexTermSelector.html#Lucene_Net_Codecs_BlockTerms_VariableGapTermsIndexWriter_IndexTermSelector_NewField_Lucene_Net_Index_FieldInfo_">NewField(FieldInfo)</a> is called at the start of each new field, and
<a class="xref" href="Lucene.Net.Codecs.BlockTerms.VariableGapTermsIndexWriter.IndexTermSelector.html#Lucene_Net_Codecs_BlockTerms_VariableGapTermsIndexWriter_IndexTermSelector_IsIndexTerm_Lucene_Net_Util_BytesRef_Lucene_Net_Codecs_TermStats_">IsIndexTerm(BytesRef, TermStats)</a> for each term in that field.
<p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div></section>
</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/blob/docs/4.8.0-beta00008/src/Lucene.Net.Codecs/BlockTerms/package.md/#L2" class="contribution-link">Improve this Doc</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="../../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../../styles/docfx.js"></script>
    <script type="text/javascript" src="../../styles/main.js"></script>
  </body>
</html>
