﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class Lucene41PostingsFormat
   | Apache Lucene.NET 4.8.0-beta00008 Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class Lucene41PostingsFormat
   | 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.Lucene41.Lucene41PostingsFormat">
  
  
  <h1 id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat" class="text-break">Class Lucene41PostingsFormat
  </h1>
  <div class="markdown level0 summary"><p>Lucene 4.1 postings format, which encodes postings in packed integer blocks
for fast decode.</p>
<p><strong>NOTE</strong>: this format is still experimental and
subject to change without backwards compatibility.

<p>
Basic idea:
<ul><li>
<strong>Packed Blocks and VInt Blocks</strong>:
<p>In packed blocks, integers are encoded with the same bit width packed format (<a class="xref" href="Lucene.Net.Util.Packed.PackedInt32s.html">PackedInt32s</a>):
   the block size (i.e. number of integers inside block) is fixed (currently 128). Additionally blocks
   that are all the same value are encoded in an optimized way.</p>
<p>In VInt blocks, integers are encoded as VInt (<a class="xref" href="Lucene.Net.Store.DataOutput.html#Lucene_Net_Store_DataOutput_WriteVInt32_System_Int32_">WriteVInt32(Int32)</a>):
   the block size is variable.</p>
</li><li>
<strong>Block structure</strong>:
<p>When the postings are long enough, Lucene41PostingsFormat will try to encode most integer data
   as a packed block.</p>
<p>Take a term with 259 documents as an example, the first 256 document ids are encoded as two packed
   blocks, while the remaining 3 are encoded as one VInt block. </p>
<p>Different kinds of data are always encoded separately into different packed blocks, but may
   possibly be interleaved into the same VInt block. </p>
<p>This strategy is applied to pairs:
   &lt;document number, frequency&gt;,
   &lt;position, payload length&gt;,
   &lt;position, offset start, offset length&gt;, and
   &lt;position, payload length, offsetstart, offset length&gt;.</p>
</li><li>
<strong>Skipdata settings</strong>:
<p>The structure of skip table is quite similar to previous version of Lucene. Skip interval is the
   same as block size, and each skip entry points to the beginning of each block. However, for
   the first block, skip data is omitted.</p>
</li><li>
<strong>Positions, Payloads, and Offsets</strong>:
<p>A position is an integer indicating where the term occurs within one document.
   A payload is a blob of metadata associated with current position.
   An offset is a pair of integers indicating the tokenized start/end offsets for given term
   in current position: it is essentially a specialized payload. </p>
<p>When payloads and offsets are not omitted, numPositions==numPayloads==numOffsets (assuming a
   null payload contributes one count). As mentioned in block structure, it is possible to encode
   these three either combined or separately.</p>
<p>In all cases, payloads and offsets are stored together. When encoded as a packed block,
   position data is separated out as .pos, while payloads and offsets are encoded in .pay (payload
   metadata will also be stored directly in .pay). When encoded as VInt blocks, all these three are
   stored interleaved into the .pos (so is payload metadata).</p>
<p>With this strategy, the majority of payload and offset data will be outside .pos file.
   So for queries that require only position data, running on a full index with payloads and offsets,
   this reduces disk pre-fetches.</p>
</li></ul>
</p>

<p>
Files and detailed format:
<ul><li><code>.tim</code>: <a href="#Termdictionary">Term Dictionary</a></li><li><code>.tip</code>: <a href="#Termindex">Term Index</a></li><li><code>.doc</code>: <a href="#Frequencies">Frequencies and Skip Data</a></li><li><code>.pos</code>: <a href="#Positions">Positions</a></li><li><code>.pay</code>: <a href="#Payloads">Payloads and Offsets</a></li></ul>
</p>

<p><a name="Termdictionary" id="Termdictionary"></a>
<dl>
<dd>
<strong>Term Dictionary</strong><p>
<p>The .tim file contains the list of terms in each
field along with per-term statistics (such as docfreq)
and pointers to the frequencies, positions, payload and
skip data in the .doc, .pos, and .pay files.
See <a class="xref" href="Lucene.Net.Codecs.BlockTreeTermsWriter.html">BlockTreeTermsWriter</a> for more details on the format.
</p>

<p>NOTE: The term dictionary can plug into different postings implementations:
the postings writer/reader are actually responsible for encoding
and decoding the PostingsHeader and TermMetadata sections described here:</p>

<p><ul><li>PostingsHeader --&gt; Header, PackedBlockSize</li><li>TermMetadata --&gt; (DocFPDelta|SingletonDocID), PosFPDelta?, PosVIntBlockFPDelta?, PayFPDelta?,
                           SkipFPDelta?</li><li>Header, --&gt; CodecHeader (<a class="xref" href="Lucene.Net.Codecs.CodecUtil.html#Lucene_Net_Codecs_CodecUtil_WriteHeader_Lucene_Net_Store_DataOutput_System_String_System_Int32_">WriteHeader(DataOutput, String, Int32)</a>) </li><li>PackedBlockSize, SingletonDocID --&gt; VInt (<a class="xref" href="Lucene.Net.Store.DataOutput.html#Lucene_Net_Store_DataOutput_WriteVInt32_System_Int32_">WriteVInt32(Int32)</a>) </li><li>DocFPDelta, PosFPDelta, PayFPDelta, PosVIntBlockFPDelta, SkipFPDelta --&gt; VLong (<a class="xref" href="Lucene.Net.Store.DataOutput.html#Lucene_Net_Store_DataOutput_WriteVInt64_System_Int64_">WriteVInt64(Int64)</a>) </li><li>Footer --&gt; CodecFooter (<a class="xref" href="Lucene.Net.Codecs.CodecUtil.html#Lucene_Net_Codecs_CodecUtil_WriteFooter_Lucene_Net_Store_IndexOutput_">WriteFooter(IndexOutput)</a>) </li></ul>
<p>Notes:</p>
<ul><li>Header is a CodecHeader (<a class="xref" href="Lucene.Net.Codecs.CodecUtil.html#Lucene_Net_Codecs_CodecUtil_WriteHeader_Lucene_Net_Store_DataOutput_System_String_System_Int32_">WriteHeader(DataOutput, String, Int32)</a>) storing the version information
       for the postings.</li><li>PackedBlockSize is the fixed block size for packed blocks. In packed block, bit width is
       determined by the largest integer. Smaller block size result in smaller variance among width
       of integers hence smaller indexes. Larger block size result in more efficient bulk i/o hence
       better acceleration. This value should always be a multiple of 64, currently fixed as 128 as
       a tradeoff. It is also the skip interval used to accelerate <a class="xref" href="Lucene.Net.Search.DocIdSetIterator.html#Lucene_Net_Search_DocIdSetIterator_Advance_System_Int32_">Advance(Int32)</a>.</li><li>DocFPDelta determines the position of this term&apos;s TermFreqs within the .doc file.
       In particular, it is the difference of file offset between this term&apos;s
       data and previous term&apos;s data (or zero, for the first term in the block).On disk it is
       stored as the difference from previous value in sequence. </li><li>PosFPDelta determines the position of this term&apos;s TermPositions within the .pos file.
       While PayFPDelta determines the position of this term&apos;s &lt;TermPayloads, TermOffsets?&gt; within
       the .pay file. Similar to DocFPDelta, it is the difference between two file positions (or
       neglected, for fields that omit payloads and offsets).</li><li>PosVIntBlockFPDelta determines the position of this term&apos;s last TermPosition in last pos packed
       block within the .pos file. It is synonym for PayVIntBlockFPDelta or OffsetVIntBlockFPDelta.
       This is actually used to indicate whether it is necessary to load following
       payloads and offsets from .pos instead of .pay. Every time a new block of positions are to be
       loaded, the PostingsReader will use this value to check whether current block is packed format
       or VInt. When packed format, payloads and offsets are fetched from .pay, otherwise from .pos.
       (this value is neglected when total number of positions i.e. totalTermFreq is less or equal
       to PackedBlockSize).</li><li>SkipFPDelta determines the position of this term&apos;s SkipData within the .doc
       file. In particular, it is the length of the TermFreq data.
       SkipDelta is only stored if DocFreq is not smaller than SkipMinimum
       (i.e. 128 in Lucene41PostingsFormat).</li><li>SingletonDocID is an optimization when a term only appears in one document. In this case, instead
       of writing a file pointer to the .doc file (DocFPDelta), and then a VIntBlock at that location, the
       single document ID is written to the term dictionary.</li></ul>
</dd>
</dl></p>
<p><a name="Termindex" id="Termindex"></a>
<dl>
<dd>
<strong>Term Index</strong>
<p>The .tip file contains an index into the term dictionary, so that it can be
accessed randomly.  See <a class="xref" href="Lucene.Net.Codecs.BlockTreeTermsWriter.html">BlockTreeTermsWriter</a> for more details on the format.</p>
</dd>
</dl></p>
<p><a name="Frequencies" id="Frequencies"></a>
<dl>
<dd>
<strong>Frequencies and Skip Data</strong><p>
<p>The .doc file contains the lists of documents which contain each term, along
with the frequency of the term in that document (except when frequencies are
omitted: <a class="xref" href="Lucene.Net.Index.IndexOptions.html#Lucene_Net_Index_IndexOptions_DOCS_ONLY">DOCS_ONLY</a>). It also saves skip data to the beginning of
each packed or VInt block, when the length of document list is larger than packed block size.</p>

<p><ul><li>docFile(.doc) --&gt; Header, &lt;TermFreqs, SkipData?&gt;<sup>TermCount</sup>, Footer</li><li>Header --&gt; CodecHeader (<a class="xref" href="Lucene.Net.Codecs.CodecUtil.html#Lucene_Net_Codecs_CodecUtil_WriteHeader_Lucene_Net_Store_DataOutput_System_String_System_Int32_">WriteHeader(DataOutput, String, Int32)</a>)</li><li>TermFreqs --&gt; &lt;PackedBlock&gt; <sup>PackedDocBlockNum</sup>,
                       VIntBlock? </li><li>PackedBlock --&gt; PackedDocDeltaBlock, PackedFreqBlock?</li><li>VIntBlock --&gt; &lt;DocDelta[, Freq?]&gt;<sup>DocFreq-PackedBlockSize<em>PackedDocBlockNum</em></sup></li><li>SkipData --&gt; &lt;&lt;SkipLevelLength, SkipLevel&gt;
<sup>NumSkipLevels-1</sup>, SkipLevel&gt;, SkipDatum?</li><li>SkipLevel --&gt; &lt;SkipDatum&gt; <sup>TrimmedDocFreq/(PackedBlockSize^(Level + 1))</sup></li><li>SkipDatum --&gt; DocSkip, DocFPSkip, &lt;PosFPSkip, PosBlockOffset, PayLength?,
                 PayFPSkip?&gt;?, SkipChildLevelPointer?</li><li>PackedDocDeltaBlock, PackedFreqBlock --&gt; PackedInts (<a class="xref" href="Lucene.Net.Util.Packed.PackedInt32s.html">PackedInt32s</a>) </li><li>DocDelta, Freq, DocSkip, DocFPSkip, PosFPSkip, PosBlockOffset, PayByteUpto, PayFPSkip
--&gt;
VInt (<a class="xref" href="Lucene.Net.Store.DataOutput.html#Lucene_Net_Store_DataOutput_WriteVInt32_System_Int32_">WriteVInt32(Int32)</a>) </li><li>SkipChildLevelPointer --&gt; VLong (<a class="xref" href="Lucene.Net.Store.DataOutput.html#Lucene_Net_Store_DataOutput_WriteVInt64_System_Int64_">WriteVInt64(Int64)</a>) </li><li>Footer --&gt; CodecFooter (<a class="xref" href="Lucene.Net.Codecs.CodecUtil.html#Lucene_Net_Codecs_CodecUtil_WriteFooter_Lucene_Net_Store_IndexOutput_">WriteFooter(IndexOutput)</a>) </li></ul>
<p>Notes:</p>
<ul><li>PackedDocDeltaBlock is theoretically generated from two steps:
<ol><li>Calculate the difference between each document number and previous one,
      and get a d-gaps list (for the first document, use absolute value); </li><li>For those d-gaps from first one to PackedDocBlockNumPackedBlockSize<sup>th</sup>,
      separately encode as packed blocks.</li></ol>
If frequencies are not omitted, PackedFreqBlock will be generated without d-gap step.
</li><li>VIntBlock stores remaining d-gaps (along with frequencies when possible) with a format
    that encodes DocDelta and Freq:
<p>DocDelta: if frequencies are indexed, this determines both the document
number and the frequency. In particular, DocDelta/2 is the difference between
this document number and the previous document number (or zero when this is the
first document in a TermFreqs). When DocDelta is odd, the frequency is one.
When DocDelta is even, the frequency is read as another VInt. If frequencies
are omitted, DocDelta contains the gap (not multiplied by 2) between document
numbers and no frequency information is stored.</p>
<p>For example, the TermFreqs for a term which occurs once in document seven
   and three times in document eleven, with frequencies indexed, would be the
   following sequence of VInts:</p>
<p>15, 8, 3</p>
<p>If frequencies were omitted (<a class="xref" href="Lucene.Net.Index.IndexOptions.html#Lucene_Net_Index_IndexOptions_DOCS_ONLY">DOCS_ONLY</a>) it would be this
   sequence of VInts instead:</p>
<p>7,4</p>
</li><li>PackedDocBlockNum is the number of packed blocks for current term&apos;s docids or frequencies.
    In particular, PackedDocBlockNum = floor(DocFreq/PackedBlockSize) </li><li>TrimmedDocFreq = DocFreq % PackedBlockSize == 0 ? DocFreq - 1 : DocFreq.
    We use this trick since the definition of skip entry is a little different from base interface.
    In <a class="xref" href="Lucene.Net.Codecs.MultiLevelSkipListWriter.html">MultiLevelSkipListWriter</a>, skip data is assumed to be saved for
    skipInterval<sup>th</sup>, 2<em>skipInterval<sup>th</sup> ... posting in the list. However,
    in Lucene41PostingsFormat, the skip data is saved for skipInterval+1<sup>th</sup>,
    2</em>skipInterval+1<sup>th</sup> ... posting (skipInterval==PackedBlockSize in this case).
    When DocFreq is multiple of PackedBlockSize, MultiLevelSkipListWriter will expect one
    more skip data than Lucene41SkipWriter. </li><li>SkipDatum is the metadata of one skip entry.
   For the first block (no matter packed or VInt), it is omitted.</li><li>DocSkip records the document number of every PackedBlockSize<sup>th</sup> document number in
    the postings (i.e. last document number in each packed block). On disk it is stored as the
    difference from previous value in the sequence. </li><li>DocFPSkip records the file offsets of each block (excluding )posting at
    PackedBlockSize+1<sup>th</sup>, 2*PackedBlockSize+1<sup>th</sup> ... , in DocFile.
    The file offsets are relative to the start of current term&apos;s TermFreqs.
    On disk it is also stored as the difference from previous SkipDatum in the sequence.</li><li>Since positions and payloads are also block encoded, the skip should skip to related block first,
    then fetch the values according to in-block offset. PosFPSkip and PayFPSkip record the file
    offsets of related block in .pos and .pay, respectively. While PosBlockOffset indicates
    which value to fetch inside the related block (PayBlockOffset is unnecessary since it is always
    equal to PosBlockOffset). Same as DocFPSkip, the file offsets are relative to the start of
    current term&apos;s TermFreqs, and stored as a difference sequence.</li><li>PayByteUpto indicates the start offset of the current payload. It is equivalent to
    the sum of the payload lengths in the current block up to PosBlockOffset</li></ul>
</dd>
</dl></p>
<p><a name="Positions" id="Positions"></a>
<dl>
<dd>
<strong>Positions</strong>
<p>The .pos file contains the lists of positions that each term occurs at within documents. It also
   sometimes stores part of payloads and offsets for speedup.</p>
<ul><li>PosFile(.pos) --&gt; Header, &lt;TermPositions&gt; <sup>TermCount</sup>, Footer</li><li>Header --&gt; CodecHeader (<a class="xref" href="Lucene.Net.Codecs.CodecUtil.html#Lucene_Net_Codecs_CodecUtil_WriteHeader_Lucene_Net_Store_DataOutput_System_String_System_Int32_">WriteHeader(DataOutput, String, Int32)</a>) </li><li>TermPositions --&gt; &lt;PackedPosDeltaBlock&gt; <sup>PackedPosBlockNum</sup>,
                           VIntBlock? </li><li>VIntBlock --&gt; &lt;PositionDelta[, PayloadLength?], PayloadData?,
                       OffsetDelta?, OffsetLength?&gt;<sup>PosVIntCount</sup></li><li>PackedPosDeltaBlock --&gt; PackedInts (<a class="xref" href="Lucene.Net.Util.Packed.PackedInt32s.html">PackedInt32s</a>)</li><li>PositionDelta, OffsetDelta, OffsetLength --&gt;
      VInt (<a class="xref" href="Lucene.Net.Store.DataOutput.html#Lucene_Net_Store_DataOutput_WriteVInt32_System_Int32_">WriteVInt32(Int32)</a>) </li><li>PayloadData --&gt; byte (<a class="xref" href="Lucene.Net.Store.DataOutput.html#Lucene_Net_Store_DataOutput_WriteByte_System_Byte_">WriteByte(Byte)</a>)<sup>PayLength</sup></li><li>Footer --&gt; CodecFooter (<a class="xref" href="Lucene.Net.Codecs.CodecUtil.html#Lucene_Net_Codecs_CodecUtil_WriteFooter_Lucene_Net_Store_IndexOutput_">WriteFooter(IndexOutput)</a>) </li></ul>
<p>Notes:</p>
<ul><li>TermPositions are order by term (terms are implicit, from the term dictionary), and position
      values for each term document pair are incremental, and ordered by document number.</li><li>PackedPosBlockNum is the number of packed blocks for current term&apos;s positions, payloads or offsets.
      In particular, PackedPosBlockNum = floor(totalTermFreq/PackedBlockSize) </li><li>PosVIntCount is the number of positions encoded as VInt format. In particular,
      PosVIntCount = totalTermFreq - PackedPosBlockNum*PackedBlockSize</li><li>The procedure how PackedPosDeltaBlock is generated is the same as PackedDocDeltaBlock
      in chapter <a href="#Frequencies">Frequencies and Skip Data</a>.</li><li>PositionDelta is, if payloads are disabled for the term&apos;s field, the
      difference between the position of the current occurrence in the document and
      the previous occurrence (or zero, if this is the first occurrence in this
      document). If payloads are enabled for the term&apos;s field, then PositionDelta/2
      is the difference between the current and the previous position. If payloads
      are enabled and PositionDelta is odd, then PayloadLength is stored, indicating
      the length of the payload at the current term position.</li><li>For example, the TermPositions for a term which occurs as the fourth term in
      one document, and as the fifth and ninth term in a subsequent document, would
      be the following sequence of VInts (payloads disabled):
<p>4, 5, 4</p></li><li>PayloadData is metadata associated with the current term position. If
PayloadLength is stored at the current position, then it indicates the length
of this payload. If PayloadLength is not stored, then this payload has the same
length as the payload at the previous position.</li><li>OffsetDelta/2 is the difference between this position&apos;s startOffset from the
previous occurrence (or zero, if this is the first occurrence in this document).
If OffsetDelta is odd, then the length (endOffset-startOffset) differs from the
previous occurrence and an OffsetLength follows. Offset data is only written for
<a class="xref" href="Lucene.Net.Index.IndexOptions.html#Lucene_Net_Index_IndexOptions_DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS">DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS</a>.</li></ul>
</dd>
</dl></p>
<p><a name="Payloads" id="Payloads"></a>
<dl>
<dd>
<strong>Payloads and Offsets</strong>
<p>The .pay file will store payloads and offsets associated with certain term-document positions.
   Some payloads and offsets will be separated out into .pos file, for performance reasons.</p>
<ul><li>PayFile(.pay): --&gt; Header, &lt;TermPayloads, TermOffsets?&gt; <sup>TermCount</sup>, Footer</li><li>Header --&gt; CodecHeader (<a class="xref" href="Lucene.Net.Codecs.CodecUtil.html#Lucene_Net_Codecs_CodecUtil_WriteHeader_Lucene_Net_Store_DataOutput_System_String_System_Int32_">WriteHeader(DataOutput, String, Int32)</a>) </li><li>TermPayloads --&gt; &lt;PackedPayLengthBlock, SumPayLength, PayData&gt; <sup>PackedPayBlockNum</sup></li><li>TermOffsets --&gt; &lt;PackedOffsetStartDeltaBlock, PackedOffsetLengthBlock&gt; <sup>PackedPayBlockNum</sup></li><li>PackedPayLengthBlock, PackedOffsetStartDeltaBlock, PackedOffsetLengthBlock --&gt; PackedInts (<a class="xref" href="Lucene.Net.Util.Packed.PackedInt32s.html">PackedInt32s</a>) </li><li>SumPayLength --&gt; VInt (<a class="xref" href="Lucene.Net.Store.DataOutput.html#Lucene_Net_Store_DataOutput_WriteVInt32_System_Int32_">WriteVInt32(Int32)</a>) </li><li>PayData --&gt; byte (<a class="xref" href="Lucene.Net.Store.DataOutput.html#Lucene_Net_Store_DataOutput_WriteByte_System_Byte_">WriteByte(Byte)</a>) <sup>SumPayLength</sup></li><li>Footer --&gt; CodecFooter (<a class="xref" href="Lucene.Net.Codecs.CodecUtil.html#Lucene_Net_Codecs_CodecUtil_WriteFooter_Lucene_Net_Store_IndexOutput_">WriteFooter(IndexOutput)</a>) </li></ul>
<p>Notes:</p>
<ul><li>The order of TermPayloads/TermOffsets will be the same as TermPositions, note that part of
      payload/offsets are stored in .pos.</li><li>The procedure how PackedPayLengthBlock and PackedOffsetLengthBlock are generated is the
      same as PackedFreqBlock in chapter <a href="#Frequencies">Frequencies and Skip Data</a>.
      While PackedStartDeltaBlock follows a same procedure as PackedDocDeltaBlock.</li><li>PackedPayBlockNum is always equal to PackedPosBlockNum, for the same term. It is also synonym
      for PackedOffsetBlockNum.</li><li>SumPayLength is the total length of payloads written within one block, should be the sum
      of PayLengths in one packed block.</li><li>PayLength in PackedPayLengthBlock is the length of each payload associated with the current
      position.</li></ul>
</dd>
</dl>
</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 level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><a class="xref" href="Lucene.Net.Codecs.PostingsFormat.html">PostingsFormat</a></div>
    <div class="level2"><span class="xref">Lucene41PostingsFormat</span></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <a class="xref" href="Lucene.Net.Codecs.PostingsFormat.html#Lucene_Net_Codecs_PostingsFormat_EMPTY">PostingsFormat.EMPTY</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Codecs.PostingsFormat.html#Lucene_Net_Codecs_PostingsFormat_SetPostingsFormatFactory_Lucene_Net_Codecs_IPostingsFormatFactory_">PostingsFormat.SetPostingsFormatFactory(IPostingsFormatFactory)</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Codecs.PostingsFormat.html#Lucene_Net_Codecs_PostingsFormat_GetPostingsFormatFactory">PostingsFormat.GetPostingsFormatFactory()</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Codecs.PostingsFormat.html#Lucene_Net_Codecs_PostingsFormat_Name">PostingsFormat.Name</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Codecs.PostingsFormat.html#Lucene_Net_Codecs_PostingsFormat_ForName_System_String_">PostingsFormat.ForName(String)</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Codecs.PostingsFormat.html#Lucene_Net_Codecs_PostingsFormat_AvailablePostingsFormats">PostingsFormat.AvailablePostingsFormats</a>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="../Lucene.Net.TestFramework/Lucene.Net.Codecs.Lucene41.html">Lucene.Net.Codecs.Lucene41</a></h6>
  <h6><strong>Assembly</strong>: Lucene.Net.dll</h6>
  <h5 id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[PostingsFormatName(&quot;Lucene41&quot;)]
public sealed class Lucene41PostingsFormat : PostingsFormat</code></pre>
  </div>
  <h3 id="constructors">Constructors
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00008/websites/apidocs/apiSpec/new?filename=Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat__ctor.md&amp;value=---%0Auid%3A%20Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.%23ctor%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/Shazwazza/lucenenet/blob/docs-may/src/Lucene.Net/Codecs/Lucene41/Lucene41PostingsFormat.cs/#L381">View Source</a>
  </span>
  <a id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat__ctor_" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.#ctor*"></a>
  <h4 id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat__ctor" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.#ctor">Lucene41PostingsFormat()</h4>
  <div class="markdown level1 summary"><p>Creates <a class="xref" href="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.html">Lucene41PostingsFormat</a> with default
settings.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public Lucene41PostingsFormat()</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-beta00008/websites/apidocs/apiSpec/new?filename=Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat__ctor_System_Int32_System_Int32_.md&amp;value=---%0Auid%3A%20Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.%23ctor(System.Int32%2CSystem.Int32)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/Shazwazza/lucenenet/blob/docs-may/src/Lucene.Net/Codecs/Lucene41/Lucene41PostingsFormat.cs/#L391">View Source</a>
  </span>
  <a id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat__ctor_" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.#ctor*"></a>
  <h4 id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat__ctor_System_Int32_System_Int32_" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.#ctor(System.Int32,System.Int32)">Lucene41PostingsFormat(Int32, Int32)</h4>
  <div class="markdown level1 summary"><p>Creates <a class="xref" href="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.html">Lucene41PostingsFormat</a> with custom
values for <code data-dev-comment-type="paramref" class="paramref">minTermBlockSize</code> and 
<code data-dev-comment-type="paramref" class="paramref">maxTermBlockSize</code> passed to block terms dictionary. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public Lucene41PostingsFormat(int minTermBlockSize, int maxTermBlockSize)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">minTermBlockSize</span></td>
        <td></td>
      </tr>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><span class="parametername">maxTermBlockSize</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat__ctor_System_Int32_System_Int32__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Lucene.Net.Codecs.BlockTreeTermsWriter.html#Lucene_Net_Codecs_BlockTreeTermsWriter__ctor_Lucene_Net_Index_SegmentWriteState_Lucene_Net_Codecs_PostingsWriterBase_System_Int32_System_Int32_">BlockTreeTermsWriter(SegmentWriteState, PostingsWriterBase, Int32, Int32)</a></div>
  </div>
  <h3 id="fields">Fields
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00008/websites/apidocs/apiSpec/new?filename=Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_BLOCK_SIZE.md&amp;value=---%0Auid%3A%20Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.BLOCK_SIZE%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/Shazwazza/lucenenet/blob/docs-may/src/Lucene.Net/Codecs/Lucene41/Lucene41PostingsFormat.cs/#L375">View Source</a>
  </span>
  <h4 id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_BLOCK_SIZE" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.BLOCK_SIZE">BLOCK_SIZE</h4>
  <div class="markdown level1 summary"><p>Fixed packed block size, number of integers encoded in
a single packed block.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public static int BLOCK_SIZE</code></pre>
  </div>
  <h5 class="fieldValue">Field Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00008/websites/apidocs/apiSpec/new?filename=Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_DOC_EXTENSION.md&amp;value=---%0Auid%3A%20Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.DOC_EXTENSION%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/Shazwazza/lucenenet/blob/docs-may/src/Lucene.Net/Codecs/Lucene41/Lucene41PostingsFormat.cs/#L353">View Source</a>
  </span>
  <h4 id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_DOC_EXTENSION" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.DOC_EXTENSION">DOC_EXTENSION</h4>
  <div class="markdown level1 summary"><p>Filename extension for document number, frequencies, and skip data.
See chapter: <a href="#Frequencies">Frequencies and Skip Data</a></p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public const string DOC_EXTENSION = &quot;doc&quot;</code></pre>
  </div>
  <h5 class="fieldValue">Field Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00008/websites/apidocs/apiSpec/new?filename=Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_PAY_EXTENSION.md&amp;value=---%0Auid%3A%20Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.PAY_EXTENSION%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/Shazwazza/lucenenet/blob/docs-may/src/Lucene.Net/Codecs/Lucene41/Lucene41PostingsFormat.cs/#L365">View Source</a>
  </span>
  <h4 id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_PAY_EXTENSION" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.PAY_EXTENSION">PAY_EXTENSION</h4>
  <div class="markdown level1 summary"><p>Filename extension for payloads and offsets.
See chapter: <a href="#Payloads">Payloads and Offsets</a></p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public const string PAY_EXTENSION = &quot;pay&quot;</code></pre>
  </div>
  <h5 class="fieldValue">Field Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00008/websites/apidocs/apiSpec/new?filename=Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_POS_EXTENSION.md&amp;value=---%0Auid%3A%20Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.POS_EXTENSION%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/Shazwazza/lucenenet/blob/docs-may/src/Lucene.Net/Codecs/Lucene41/Lucene41PostingsFormat.cs/#L359">View Source</a>
  </span>
  <h4 id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_POS_EXTENSION" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.POS_EXTENSION">POS_EXTENSION</h4>
  <div class="markdown level1 summary"><p>Filename extension for positions.
See chapter: <a href="#Positions">Positions</a></p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public const string POS_EXTENSION = &quot;pos&quot;</code></pre>
  </div>
  <h5 class="fieldValue">Field Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</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-beta00008/websites/apidocs/apiSpec/new?filename=Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_FieldsConsumer_Lucene_Net_Index_SegmentWriteState_.md&amp;value=---%0Auid%3A%20Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.FieldsConsumer(Lucene.Net.Index.SegmentWriteState)%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/Shazwazza/lucenenet/blob/docs-may/src/Lucene.Net/Codecs/Lucene41/Lucene41PostingsFormat.cs/#L405">View Source</a>
  </span>
  <a id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_FieldsConsumer_" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.FieldsConsumer*"></a>
  <h4 id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_FieldsConsumer_Lucene_Net_Index_SegmentWriteState_" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.FieldsConsumer(Lucene.Net.Index.SegmentWriteState)">FieldsConsumer(SegmentWriteState)</h4>
  <div class="markdown level1 summary"></div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override FieldsConsumer FieldsConsumer(SegmentWriteState state)</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.SegmentWriteState.html">SegmentWriteState</a></td>
        <td><span class="parametername">state</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.Codecs.FieldsConsumer.html">FieldsConsumer</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><a class="xref" href="Lucene.Net.Codecs.PostingsFormat.html#Lucene_Net_Codecs_PostingsFormat_FieldsConsumer_Lucene_Net_Index_SegmentWriteState_">PostingsFormat.FieldsConsumer(SegmentWriteState)</a></div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00008/websites/apidocs/apiSpec/new?filename=Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_FieldsProducer_Lucene_Net_Index_SegmentReadState_.md&amp;value=---%0Auid%3A%20Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.FieldsProducer(Lucene.Net.Index.SegmentReadState)%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/Shazwazza/lucenenet/blob/docs-may/src/Lucene.Net/Codecs/Lucene41/Lucene41PostingsFormat.cs/#L425">View Source</a>
  </span>
  <a id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_FieldsProducer_" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.FieldsProducer*"></a>
  <h4 id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_FieldsProducer_Lucene_Net_Index_SegmentReadState_" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.FieldsProducer(Lucene.Net.Index.SegmentReadState)">FieldsProducer(SegmentReadState)</h4>
  <div class="markdown level1 summary"></div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override FieldsProducer FieldsProducer(SegmentReadState state)</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.SegmentReadState.html">SegmentReadState</a></td>
        <td><span class="parametername">state</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.Codecs.FieldsProducer.html">FieldsProducer</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><a class="xref" href="Lucene.Net.Codecs.PostingsFormat.html#Lucene_Net_Codecs_PostingsFormat_FieldsProducer_Lucene_Net_Index_SegmentReadState_">PostingsFormat.FieldsProducer(SegmentReadState)</a></div>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00008/websites/apidocs/apiSpec/new?filename=Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_ToString.md&amp;value=---%0Auid%3A%20Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.ToString%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/Shazwazza/lucenenet/blob/docs-may/src/Lucene.Net/Codecs/Lucene41/Lucene41PostingsFormat.cs/#L400">View Source</a>
  </span>
  <a id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_ToString_" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.ToString*"></a>
  <h4 id="Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat_ToString" data-uid="Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat.ToString">ToString()</h4>
  <div class="markdown level1 summary"></div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public override string ToString()</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><span class="xref">System.String</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><a class="xref" href="Lucene.Net.Codecs.PostingsFormat.html#Lucene_Net_Codecs_PostingsFormat_ToString">PostingsFormat.ToString()</a></div>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <div class="contribution">
                <ul class="nav">
                  <li>
                    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00008/websites/apidocs/apiSpec/new?filename=Lucene_Net_Codecs_Lucene41_Lucene41PostingsFormat.md&amp;value=---%0Auid%3A%20Lucene.Net.Codecs.Lucene41.Lucene41PostingsFormat%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/Shazwazza/lucenenet/blob/docs-may/src/Lucene.Net/Codecs/Lucene41/Lucene41PostingsFormat.cs/#L346" class="contribution-link">View Source</a>
                  </li>
                </ul>
              </div>
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            Copyright © 2020 Licensed to the Apache Software Foundation (ASF)
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../../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>
