﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class TeeSinkTokenFilter
   | Apache Lucene.NET 4.8.0-beta00008 Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class TeeSinkTokenFilter
   | 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.Sinks.TeeSinkTokenFilter">
  
  
  <h1 id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter" class="text-break">Class TeeSinkTokenFilter
  </h1>
  <div class="markdown level0 summary"><p>This TokenFilter provides the ability to set aside attribute states
that have already been analyzed.  This is useful in situations where multiple fields share
many common analysis steps and then go their separate ways.
<p>
It is also useful for doing things like entity extraction or proper noun analysis as
part of the analysis workflow and saving off those tokens for use in another field.
<p>
<pre><code>TeeSinkTokenFilter source1 = new TeeSinkTokenFilter(new WhitespaceTokenizer(version, reader1));
TeeSinkTokenFilter.SinkTokenStream sink1 = source1.NewSinkTokenStream();
TeeSinkTokenFilter.SinkTokenStream sink2 = source1.NewSinkTokenStream();

TeeSinkTokenFilter source2 = new TeeSinkTokenFilter(new WhitespaceTokenizer(version, reader2));
source2.AddSinkTokenStream(sink1);
source2.AddSinkTokenStream(sink2);

TokenStream final1 = new LowerCaseFilter(version, source1);
TokenStream final2 = source2;
TokenStream final3 = new EntityDetect(sink1);
TokenStream final4 = new URLDetect(sink2);

d.Add(new TextField(&quot;f1&quot;, final1, Field.Store.NO));
d.Add(new TextField(&quot;f2&quot;, final2, Field.Store.NO));
d.Add(new TextField(&quot;f3&quot;, final3, Field.Store.NO));
d.Add(new TextField(&quot;f4&quot;, final4, Field.Store.NO));</code></pre>
<p>In this example, <code>sink1</code> and <code>sink2</code> will both get tokens from both
<code>reader1</code> and <code>reader2</code> after whitespace tokenizer
and now we can further wrap any of these in extra analysis, and more &quot;sources&quot; can be inserted if desired.
It is important, that tees are consumed before sinks (in the above example, the field names must be
less the sink&apos;s field names). If you are not sure, which stream is consumed first, you can simply
add another sink and then pass all tokens to the sinks at once using <a class="xref" href="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.html#Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_ConsumeAllTokens">ConsumeAllTokens()</a>.
This <a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.TokenFilter.html">TokenFilter</a> is exhausted after this. In the above example, change
the example above to:</p>
<pre><code>...
TokenStream final1 = new LowerCaseFilter(version, source1.NewSinkTokenStream());
TokenStream final2 = source2.NewSinkTokenStream();
sink1.ConsumeAllTokens();
sink2.ConsumeAllTokens();
...</code></pre>
<p>In this case, the fields can be added in any order, because the sources are not used anymore and all sinks are ready.
<p>Note, the EntityDetect and URLDetect TokenStreams are for the example and do not currently exist in Lucene.
</p></p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html">AttributeSource</a></div>
    <div class="level2"><a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.TokenStream.html">TokenStream</a></div>
    <div class="level3"><a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.TokenFilter.html">TokenFilter</a></div>
    <div class="level4"><span class="xref">TeeSinkTokenFilter</span></div>
  </div>
  <div classs="implements">
    <h5>Implements</h5>
    <div><span class="xref">System.IDisposable</span></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.TokenFilter.html#Lucene_Net_Analysis_TokenFilter_m_input">TokenFilter.m_input</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.TokenFilter.html#Lucene_Net_Analysis_TokenFilter_Dispose_System_Boolean_">TokenFilter.Dispose(Boolean)</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.TokenFilter.html#Lucene_Net_Analysis_TokenFilter_Reset">TokenFilter.Reset()</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.TokenStream.html#Lucene_Net_Analysis_TokenStream_Dispose">TokenStream.Dispose()</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_GetAttributeFactory">AttributeSource.GetAttributeFactory()</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_GetAttributeClassesEnumerator">AttributeSource.GetAttributeClassesEnumerator()</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_GetAttributeImplsEnumerator">AttributeSource.GetAttributeImplsEnumerator()</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_AddAttributeImpl_Lucene_Net_Util_Attribute_">AttributeSource.AddAttributeImpl(Attribute)</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_AddAttribute__1">AttributeSource.AddAttribute&lt;T&gt;()</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_HasAttributes">AttributeSource.HasAttributes</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_HasAttribute__1">AttributeSource.HasAttribute&lt;T&gt;()</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_GetAttribute__1">AttributeSource.GetAttribute&lt;T&gt;()</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_ClearAttributes">AttributeSource.ClearAttributes()</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_CaptureState">AttributeSource.CaptureState()</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_RestoreState_Lucene_Net_Util_AttributeSource_State_">AttributeSource.RestoreState(AttributeSource.State)</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_GetHashCode">AttributeSource.GetHashCode()</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_Equals_System_Object_">AttributeSource.Equals(Object)</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_ReflectAsString_System_Boolean_">AttributeSource.ReflectAsString(Boolean)</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_ReflectWith_Lucene_Net_Util_IAttributeReflector_">AttributeSource.ReflectWith(IAttributeReflector)</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_CloneAttributes">AttributeSource.CloneAttributes()</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_CopyTo_Lucene_Net_Util_AttributeSource_">AttributeSource.CopyTo(AttributeSource)</a>
    </div>
    <div>
      <a class="xref" href="../Lucene.Net/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_ToString">AttributeSource.ToString()</a>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</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.Analysis.Sinks.html">Lucene.Net.Analysis.Sinks</a></h6>
  <h6><strong>Assembly</strong>: Lucene.Net.Analysis.Common.dll</h6>
  <h5 id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public sealed class TeeSinkTokenFilter : TokenFilter, IDisposable</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_Analysis_Sinks_TeeSinkTokenFilter__ctor_Lucene_Net_Analysis_TokenStream_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.%23ctor(Lucene.Net.Analysis.TokenStream)%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.Analysis.Common/Analysis/Sinks/TeeSinkTokenFilter.cs/#L78">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter__ctor_" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.#ctor*"></a>
  <h4 id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter__ctor_Lucene_Net_Analysis_TokenStream_" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.#ctor(Lucene.Net.Analysis.TokenStream)">TeeSinkTokenFilter(TokenStream)</h4>
  <div class="markdown level1 summary"><p>Instantiates a new <a class="xref" href="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.html">TeeSinkTokenFilter</a>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public TeeSinkTokenFilter(TokenStream input)</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/Lucene.Net.Analysis.TokenStream.html">TokenStream</a></td>
        <td><span class="parametername">input</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_Analysis_Sinks_TeeSinkTokenFilter_AddSinkTokenStream_Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_SinkTokenStream_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.AddSinkTokenStream(Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.SinkTokenStream)%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.Analysis.Common/Analysis/Sinks/TeeSinkTokenFilter.cs/#L107">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_AddSinkTokenStream_" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.AddSinkTokenStream*"></a>
  <h4 id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_AddSinkTokenStream_Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_SinkTokenStream_" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.AddSinkTokenStream(Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.SinkTokenStream)">AddSinkTokenStream(TeeSinkTokenFilter.SinkTokenStream)</h4>
  <div class="markdown level1 summary"><p>Adds a <a class="xref" href="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.SinkTokenStream.html">TeeSinkTokenFilter.SinkTokenStream</a> created by another <a class="xref" href="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.html">TeeSinkTokenFilter</a>
to this one. The supplied stream will also receive all consumed tokens.
This method can be used to pass tokens from two different tees to one sink.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public void AddSinkTokenStream(TeeSinkTokenFilter.SinkTokenStream sink)</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.Analysis.Sinks.TeeSinkTokenFilter.SinkTokenStream.html">TeeSinkTokenFilter.SinkTokenStream</a></td>
        <td><span class="parametername">sink</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_Analysis_Sinks_TeeSinkTokenFilter_ConsumeAllTokens.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.ConsumeAllTokens%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.Analysis.Common/Analysis/Sinks/TeeSinkTokenFilter.cs/#L128">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_ConsumeAllTokens_" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.ConsumeAllTokens*"></a>
  <h4 id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_ConsumeAllTokens" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.ConsumeAllTokens">ConsumeAllTokens()</h4>
  <div class="markdown level1 summary"><p><a class="xref" href="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.html">TeeSinkTokenFilter</a> passes all tokens to the added sinks
when itself is consumed. To be sure, that all tokens from the input
stream are passed to the sinks, you can call this methods.
This instance is exhausted after this, but all sinks are instant available.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public void ConsumeAllTokens()</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_Analysis_Sinks_TeeSinkTokenFilter_End.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.End%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.Analysis.Common/Analysis/Sinks/TeeSinkTokenFilter.cs/#L162">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_End_" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.End*"></a>
  <h4 id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_End" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.End">End()</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 sealed void End()</code></pre>
  </div>
  <h5 class="overrides">Overrides</h5>
  <div><a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.TokenFilter.html#Lucene_Net_Analysis_TokenFilter_End">TokenFilter.End()</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_Analysis_Sinks_TeeSinkTokenFilter_IncrementToken.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.IncrementToken%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.Analysis.Common/Analysis/Sinks/TeeSinkTokenFilter.cs/#L135">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_IncrementToken_" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.IncrementToken*"></a>
  <h4 id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_IncrementToken" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.IncrementToken">IncrementToken()</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 bool IncrementToken()</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.Boolean</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 class="overrides">Overrides</h5>
  <div><a class="xref" href="../Lucene.Net/Lucene.Net.Analysis.TokenStream.html#Lucene_Net_Analysis_TokenStream_IncrementToken">TokenStream.IncrementToken()</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_Analysis_Sinks_TeeSinkTokenFilter_NewSinkTokenStream.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.NewSinkTokenStream%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.Analysis.Common/Analysis/Sinks/TeeSinkTokenFilter.cs/#L86">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_NewSinkTokenStream_" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.NewSinkTokenStream*"></a>
  <h4 id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_NewSinkTokenStream" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.NewSinkTokenStream">NewSinkTokenStream()</h4>
  <div class="markdown level1 summary"><p>Returns a new <a class="xref" href="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.SinkTokenStream.html">TeeSinkTokenFilter.SinkTokenStream</a> that receives all tokens consumed by this stream.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public TeeSinkTokenFilter.SinkTokenStream NewSinkTokenStream()</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.Analysis.Sinks.TeeSinkTokenFilter.SinkTokenStream.html">TeeSinkTokenFilter.SinkTokenStream</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-beta00008/websites/apidocs/apiSpec/new?filename=Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_NewSinkTokenStream_Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_SinkFilter_.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.NewSinkTokenStream(Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.SinkFilter)%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.Analysis.Common/Analysis/Sinks/TeeSinkTokenFilter.cs/#L95">View Source</a>
  </span>
  <a id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_NewSinkTokenStream_" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.NewSinkTokenStream*"></a>
  <h4 id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_NewSinkTokenStream_Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_SinkFilter_" data-uid="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.NewSinkTokenStream(Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.SinkFilter)">NewSinkTokenStream(TeeSinkTokenFilter.SinkFilter)</h4>
  <div class="markdown level1 summary"><p>Returns a new <a class="xref" href="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.SinkTokenStream.html">TeeSinkTokenFilter.SinkTokenStream</a> that receives all tokens consumed by this stream
that pass the supplied filter. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public TeeSinkTokenFilter.SinkTokenStream NewSinkTokenStream(TeeSinkTokenFilter.SinkFilter filter)</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.Analysis.Sinks.TeeSinkTokenFilter.SinkFilter.html">TeeSinkTokenFilter.SinkFilter</a></td>
        <td><span class="parametername">filter</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.Analysis.Sinks.TeeSinkTokenFilter.SinkTokenStream.html">TeeSinkTokenFilter.SinkTokenStream</a></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h5 id="Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_NewSinkTokenStream_Lucene_Net_Analysis_Sinks_TeeSinkTokenFilter_SinkFilter__seealso">See Also</h5>
  <div class="seealso">
      <div><a class="xref" href="Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter.SinkFilter.html">TeeSinkTokenFilter.SinkFilter</a></div>
  </div>
  <h3 id="implements">Implements</h3>
  <div>
      <span class="xref">System.IDisposable</span>
  </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_Analysis_Sinks_TeeSinkTokenFilter.md&amp;value=---%0Auid%3A%20Lucene.Net.Analysis.Sinks.TeeSinkTokenFilter%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.Analysis.Common/Analysis/Sinks/TeeSinkTokenFilter.cs/#L71" 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>
