blob: 14c42e0ca07425fc109a0c2824486f0d760ef163 [file] [log] [blame]
<!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-beta00013 Documentation </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Class TeeSinkTokenFilter
| Apache Lucene.NET 4.8.0-beta00013 Documentation ">
<meta name="generator" content="docfx 2.56.2.0">
<link rel="shortcut icon" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/favicon.ico">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.css">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.css">
<link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.css">
<meta property="docfx:navrel" content="toc.html">
<meta property="docfx:tocrel" content="analysis-common/toc.html">
<meta property="docfx:rel" content="https://lucenenet.apache.org/docs/4.8.0-beta00009/">
</head>
<body data-spy="scroll" data-target="#affix" data-offset="120">
<span id="forkongithub"><a href="https://github.com/apache/lucenenet" target="_blank">Fork me on GitHub</a></span>
<div id="wrapper">
<header>
<nav id="autocollapse" class="navbar ng-scope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">
<img id="logo" class="svg" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/lucene-net-color.png" alt="">
</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<form class="navbar-form navbar-right" role="search" id="search">
<div class="form-group">
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
</div>
</form>
</div>
</div>
</nav>
<div class="subnav navbar navbar-default">
<div class="container hide-when-search">
<ul class="level0 breadcrumb">
<li>
<a href="https://lucenenet.apache.org/docs/4.8.0-beta00009/">API</a>
<span id="breadcrumb">
<ul class="breadcrumb">
<li></li>
</ul>
</span>
</li>
</ul>
</div>
</div>
</header>
<div class="container body-content">
<div id="search-results">
<div class="search-list"></div>
<div class="sr-items">
<p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
</div>
<ul id="pagination"></ul>
</div>
</div>
<div role="main" class="container body-content hide-when-search">
<div class="sidenav hide-when-search">
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
<div class="sidetoggle collapse" id="sidetoggle">
<div id="sidetoc"></div>
</div>
</div>
<div class="article row grid-right">
<div class="col-md-10">
<article class="content wrap" id="_content" data-uid="Lucene.Net.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 <span class="xref">Lucene.Net.Analysis.TokenFilter</span> 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"><span class="xref">Lucene.Net.Util.AttributeSource</span></div>
<div class="level2"><span class="xref">Lucene.Net.Analysis.TokenStream</span></div>
<div class="level3"><span class="xref">Lucene.Net.Analysis.TokenFilter</span></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>
<span class="xref">Lucene.Net.Analysis.TokenFilter.m_input</span>
</div>
<div>
<a class="xref" href="https://lucenenet.apache.org/docs/4.8.0-beta00013/api/core/Lucene.Net.Analysis.TokenFilter.html#Lucene_Net_Analysis_TokenFilter_Dispose_System_Boolean_">TokenFilter.Dispose(Boolean)</a>
</div>
<div>
<span class="xref">Lucene.Net.Analysis.TokenFilter.Reset()</span>
</div>
<div>
<span class="xref">Lucene.Net.Analysis.TokenStream.Dispose()</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.GetAttributeFactory()</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.GetAttributeClassesEnumerator()</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.GetAttributeImplsEnumerator()</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.AddAttributeImpl(Lucene.Net.Util.Attribute)</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.AddAttribute&lt;T&gt;()</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.HasAttributes</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.HasAttribute&lt;T&gt;()</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.GetAttribute&lt;T&gt;()</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.ClearAttributes()</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.CaptureState()</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.RestoreState(Lucene.Net.Util.AttributeSource.State)</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.GetHashCode()</span>
</div>
<div>
<a class="xref" href="https://lucenenet.apache.org/docs/4.8.0-beta00013/api/core/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_Equals_System_Object_">AttributeSource.Equals(Object)</a>
</div>
<div>
<a class="xref" href="https://lucenenet.apache.org/docs/4.8.0-beta00013/api/core/Lucene.Net.Util.AttributeSource.html#Lucene_Net_Util_AttributeSource_ReflectAsString_System_Boolean_">AttributeSource.ReflectAsString(Boolean)</a>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.ReflectWith(Lucene.Net.Util.IAttributeReflector)</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.CloneAttributes()</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.CopyTo(Lucene.Net.Util.AttributeSource)</span>
</div>
<div>
<span class="xref">Lucene.Net.Util.AttributeSource.ToString()</span>
</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-beta00013/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/NightOwl888/lucenenet/blob/fix/apidocs-layout/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><span class="xref">Lucene.Net.Analysis.TokenStream</span></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-beta00013/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/NightOwl888/lucenenet/blob/fix/apidocs-layout/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-beta00013/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/NightOwl888/lucenenet/blob/fix/apidocs-layout/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-beta00013/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/NightOwl888/lucenenet/blob/fix/apidocs-layout/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><span class="xref">Lucene.Net.Analysis.TokenFilter.End()</span></div>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_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/NightOwl888/lucenenet/blob/fix/apidocs-layout/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><span class="xref">Lucene.Net.Analysis.TokenStream.IncrementToken()</span></div>
<span class="small pull-right mobile-hide">
<span class="divider">|</span>
<a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_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/NightOwl888/lucenenet/blob/fix/apidocs-layout/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-beta00013/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/NightOwl888/lucenenet/blob/fix/apidocs-layout/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-beta00013/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/apache/lucenenet/blob/fix/apidocs-layout/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 The Apache Software Foundation, Licensed under the <a href='http://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache License, Version 2.0</a><br> <small>Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation. <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</small>
</div>
</div>
</footer>
</div>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.js"></script>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.js"></script>
<script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.js"></script>
</body>
</html>