﻿<!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.Analysis.Payloads
   | Apache Lucene.NET 4.8.0-beta00008 Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Namespace Lucene.Net.Analysis.Payloads
   | 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.Analysis.Payloads">
  
  <h1 id="Lucene_Net_Analysis_Payloads" data-uid="Lucene.Net.Analysis.Payloads" class="text-break">Namespace Lucene.Net.Analysis.Payloads
  </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>Provides various convenience classes for creating payloads on Tokens.</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.Analysis.Payloads.AbstractEncoder.html">AbstractEncoder</a></h4>
      <section><p>Base class for payload encoders.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Payloads.DelimitedPayloadTokenFilter.html">DelimitedPayloadTokenFilter</a></h4>
      <section><p>Characters before the delimiter are the &quot;token&quot;, those after are the payload.
<p>
For example, if the delimiter is &apos;|&apos;, then for the string &quot;foo|bar&quot;, foo is the token
and &quot;bar&quot; is a payload.
<p>
Note, you can also include a <a class="xref" href="Lucene.Net.Analysis.Payloads.IPayloadEncoder.html">IPayloadEncoder</a> to convert the payload in an appropriate way (from characters to bytes).
<p>
Note make sure your <a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.Tokenizer.html">Tokenizer</a> doesn&apos;t split on the delimiter, or this won&apos;t work</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Payloads.DelimitedPayloadTokenFilterFactory.html">DelimitedPayloadTokenFilterFactory</a></h4>
      <section><p>Factory for <a class="xref" href="Lucene.Net.Analysis.Payloads.DelimitedPayloadTokenFilter.html">DelimitedPayloadTokenFilter</a>.</p>
<pre><code>&lt;fieldType name=&quot;text_dlmtd&quot; class=&quot;solr.TextField&quot; positionIncrementGap=&quot;100&quot;>
  &lt;analyzer>
    &lt;tokenizer class=&quot;solr.WhitespaceTokenizerFactory&quot;/>
    &lt;filter class=&quot;solr.DelimitedPayloadTokenFilterFactory&quot; encoder=&quot;float&quot; delimiter=&quot;|&quot;/>
  &lt;/analyzer>
&lt;/fieldType></code></pre>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Payloads.IdentityEncoder.html">IdentityEncoder</a></h4>
      <section><p>Does nothing other than convert the char array to a byte array using the specified encoding.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Payloads.IntegerEncoder.html">IntegerEncoder</a></h4>
      <section><p>Encode a character array <span class="xref">System.Int32</span> as a <a class="xref" href="../Lucene.Net/Lucene.Net.Util.BytesRef.html">BytesRef</a>.
<p>
See <a class="xref" href="Lucene.Net.Analysis.Payloads.PayloadHelper.html#Lucene_Net_Analysis_Payloads_PayloadHelper_EncodeInt32_System_Int32_System_Byte___System_Int32_">EncodeInt32(Int32, Byte[], Int32)</a>.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Payloads.NumericPayloadTokenFilter.html">NumericPayloadTokenFilter</a></h4>
      <section><p>Assigns a payload to a token based on the <a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.Token.html#Lucene_Net_Analysis_Token_Type">Type</a></p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Payloads.NumericPayloadTokenFilterFactory.html">NumericPayloadTokenFilterFactory</a></h4>
      <section><p>Factory for <a class="xref" href="Lucene.Net.Analysis.Payloads.NumericPayloadTokenFilter.html">NumericPayloadTokenFilter</a>.</p>
<pre><code>&lt;fieldType name=&quot;text_numpayload&quot; class=&quot;solr.TextField&quot; positionIncrementGap=&quot;100&quot;>
  &lt;analyzer>
    &lt;tokenizer class=&quot;solr.WhitespaceTokenizerFactory&quot;/>
    &lt;filter class=&quot;solr.NumericPayloadTokenFilterFactory&quot; payload=&quot;24&quot; typeMatch=&quot;word&quot;/>
  &lt;/analyzer>
&lt;/fieldType></code></pre>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Payloads.PayloadHelper.html">PayloadHelper</a></h4>
      <section><p>Utility methods for encoding payloads.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Payloads.SingleEncoder.html">SingleEncoder</a></h4>
      <section><p>Encode a character array <span class="xref">System.Single</span> as a <a class="xref" href="../Lucene.Net/Lucene.Net.Util.BytesRef.html">BytesRef</a>.
<p>
NOTE: This was FloatEncoder in Lucene</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Payloads.TokenOffsetPayloadTokenFilter.html">TokenOffsetPayloadTokenFilter</a></h4>
      <section><p>Adds the <a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.TokenAttributes.OffsetAttribute.html#Lucene_Net_Analysis_TokenAttributes_OffsetAttribute_StartOffset">StartOffset</a>
and <a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.TokenAttributes.OffsetAttribute.html#Lucene_Net_Analysis_TokenAttributes_OffsetAttribute_EndOffset">EndOffset</a>
First 4 bytes are the start</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Payloads.TokenOffsetPayloadTokenFilterFactory.html">TokenOffsetPayloadTokenFilterFactory</a></h4>
      <section><p>Factory for <a class="xref" href="Lucene.Net.Analysis.Payloads.TokenOffsetPayloadTokenFilter.html">TokenOffsetPayloadTokenFilter</a>.</p>
<pre><code>&lt;fieldType name=&quot;text_tokenoffset&quot; class=&quot;solr.TextField&quot; positionIncrementGap=&quot;100&quot;>
  &lt;analyzer>
    &lt;tokenizer class=&quot;solr.WhitespaceTokenizerFactory&quot;/>
    &lt;filter class=&quot;solr.TokenOffsetPayloadTokenFilterFactory&quot;/>
  &lt;/analyzer>
&lt;/fieldType></code></pre>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Payloads.TypeAsPayloadTokenFilter.html">TypeAsPayloadTokenFilter</a></h4>
      <section><p>Makes the <a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.Token.html#Lucene_Net_Analysis_Token_Type">Type</a> a payload.
<p>
Encodes the type using System.Text.Encoding.UTF8.GetBytes(string)</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Analysis.Payloads.TypeAsPayloadTokenFilterFactory.html">TypeAsPayloadTokenFilterFactory</a></h4>
      <section><p>Factory for <a class="xref" href="Lucene.Net.Analysis.Payloads.TypeAsPayloadTokenFilter.html">TypeAsPayloadTokenFilter</a>.</p>
<pre><code>&lt;fieldType name=&quot;text_typeaspayload&quot; class=&quot;solr.TextField&quot; positionIncrementGap=&quot;100&quot;>
  &lt;analyzer>
    &lt;tokenizer class=&quot;solr.WhitespaceTokenizerFactory&quot;/>
    &lt;filter class=&quot;solr.TypeAsPayloadTokenFilterFactory&quot;/>
  &lt;/analyzer>
&lt;/fieldType></code></pre>
</section>
    <h3 id="interfaces">Interfaces
  </h3>
      <h4><a class="xref" href="Lucene.Net.Analysis.Payloads.IPayloadEncoder.html">IPayloadEncoder</a></h4>
      <section><p>Mainly for use with the <a class="xref" href="Lucene.Net.Analysis.Payloads.DelimitedPayloadTokenFilter.html">DelimitedPayloadTokenFilter</a>, converts char buffers to
<a class="xref" href="../Lucene.Net/Lucene.Net.Util.BytesRef.html">BytesRef</a>.
<p>
NOTE: This interface is subject to change </p>
</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.Analysis.Common/Analysis/Payloads/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>
