<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3"/>
<title>Lucene.Net: Lucene.Net.Analysis.KeywordTokenizer Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="lucene-net-icon-128x128.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">Lucene.Net
   &#160;<span id="projectnumber">3.0.3</span>
   </div>
   <div id="projectbrief">Lucene.Net is a .NET port of the Java Lucene Indexing Library</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="Index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Packages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Properties</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespace_lucene.html">Lucene</a></li><li class="navelem"><a class="el" href="namespace_lucene_1_1_net.html">Net</a></li><li class="navelem"><a class="el" href="namespace_lucene_1_1_net_1_1_analysis.html">Analysis</a></li><li class="navelem"><a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_keyword_tokenizer.html">KeywordTokenizer</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_lucene_1_1_net_1_1_analysis_1_1_keyword_tokenizer-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Lucene.Net.Analysis.KeywordTokenizer Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Emits the entire input as a single token. 
 <a href="class_lucene_1_1_net_1_1_analysis_1_1_keyword_tokenizer.html#details">More...</a></p>

<p>Inherits <a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_tokenizer.html">Lucene.Net.Analysis.Tokenizer</a>.</p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a423746f4ec5de24112109cda90962b82"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_keyword_tokenizer.html#a423746f4ec5de24112109cda90962b82">KeywordTokenizer</a> (System.IO.TextReader input)</td></tr>
<tr class="separator:a423746f4ec5de24112109cda90962b82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0071eebe48412a5b27ebaa2fca5c6eb4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_keyword_tokenizer.html#a0071eebe48412a5b27ebaa2fca5c6eb4">KeywordTokenizer</a> (System.IO.TextReader input, int bufferSize)</td></tr>
<tr class="separator:a0071eebe48412a5b27ebaa2fca5c6eb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a978a10cf937c2850a7699d4f6357a250"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_keyword_tokenizer.html#a978a10cf937c2850a7699d4f6357a250">KeywordTokenizer</a> (<a class="el" href="_char_tokenizer_8cs.html#aed60c4e663aea1a7dec59cf4c3710058">AttributeSource</a> source, System.IO.TextReader input, int bufferSize)</td></tr>
<tr class="separator:a978a10cf937c2850a7699d4f6357a250"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3fb99956cc8a91796261295450c89b2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_keyword_tokenizer.html#aa3fb99956cc8a91796261295450c89b2">KeywordTokenizer</a> (<a class="el" href="class_lucene_1_1_net_1_1_util_1_1_attribute_source_1_1_attribute_factory.html">AttributeFactory</a> factory, System.IO.TextReader input, int bufferSize)</td></tr>
<tr class="separator:aa3fb99956cc8a91796261295450c89b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4e0336424543660beb924f2c091c94e"><td class="memItemLeft" align="right" valign="top">override bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_keyword_tokenizer.html#ac4e0336424543660beb924f2c091c94e">IncrementToken</a> ()</td></tr>
<tr class="memdesc:ac4e0336424543660beb924f2c091c94e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Consumers (i.e., <a class="el" href="_f_s_directory_8cs.html#a7d90824eac5b2433e714cc9faeb34d1b">IndexWriter</a>) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate <a class="el" href="class_lucene_1_1_net_1_1_util_1_1_attribute.html" title="Base class for Attributes that can be added to a Lucene.Net.Util.AttributeSource. Attributes are used...">Util.Attribute</a>s with the attributes of the next token.  <a href="#ac4e0336424543660beb924f2c091c94e"></a><br/></td></tr>
<tr class="separator:ac4e0336424543660beb924f2c091c94e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fe3d1d728eaf72091edb0646ea25942"><td class="memItemLeft" align="right" valign="top">override void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_keyword_tokenizer.html#a7fe3d1d728eaf72091edb0646ea25942">End</a> ()</td></tr>
<tr class="memdesc:a7fe3d1d728eaf72091edb0646ea25942"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method is called by the consumer after the last token has been consumed, after <a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_keyword_tokenizer.html#ac4e0336424543660beb924f2c091c94e" title="Consumers (i.e., IndexWriter) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate Util.Attributes with the attributes of the next token.">IncrementToken</a> returned <code>false</code> (using the new <code><a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_token_stream.html" title="A TokenStream enumerates the sequence of tokens, either from Fields of a Document or from query text...">TokenStream</a></code> API). Streams implementing the old API should upgrade to use this feature. This method can be used to perform any end-of-stream operations, such as setting the final offset of a stream. The final offset of a stream might differ from the offset of the last token eg in case one or more whitespaces followed after the last token, but a <a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_whitespace_tokenizer.html" title="A WhitespaceTokenizer is a tokenizer that divides text at whitespace. Adjacent sequences of non-White...">WhitespaceTokenizer</a> was used.  <a href="#a7fe3d1d728eaf72091edb0646ea25942"></a><br/></td></tr>
<tr class="separator:a7fe3d1d728eaf72091edb0646ea25942"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0e7b8c4d71a79011a45d6c8958b4ecb"><td class="memItemLeft" align="right" valign="top">override void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_keyword_tokenizer.html#af0e7b8c4d71a79011a45d6c8958b4ecb">Reset</a> (System.IO.TextReader input)</td></tr>
<tr class="memdesc:af0e7b8c4d71a79011a45d6c8958b4ecb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Expert: Reset the tokenizer to a new reader. Typically, an analyzer (in its reusableTokenStream method) will use this to re-use a previously created tokenizer.  <a href="#af0e7b8c4d71a79011a45d6c8958b4ecb"></a><br/></td></tr>
<tr class="separator:af0e7b8c4d71a79011a45d6c8958b4ecb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_methods_class_lucene_1_1_net_1_1_analysis_1_1_tokenizer"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_lucene_1_1_net_1_1_analysis_1_1_tokenizer')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_tokenizer.html">Lucene.Net.Analysis.Tokenizer</a></td></tr>
<tr class="memitem:ad3eaa17e4598d5c15aa93741f6088b02 inherit pro_methods_class_lucene_1_1_net_1_1_analysis_1_1_tokenizer"><td class="memItemLeft" align="right" valign="top">override void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_tokenizer.html#ad3eaa17e4598d5c15aa93741f6088b02">Dispose</a> (bool disposing)</td></tr>
<tr class="separator:ad3eaa17e4598d5c15aa93741f6088b02 inherit pro_methods_class_lucene_1_1_net_1_1_analysis_1_1_tokenizer"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header properties_class_lucene_1_1_net_1_1_util_1_1_attribute_source"><td colspan="2" onclick="javascript:toggleInherit('properties_class_lucene_1_1_net_1_1_util_1_1_attribute_source')"><img src="closed.png" alt="-"/>&#160;Properties inherited from <a class="el" href="class_lucene_1_1_net_1_1_util_1_1_attribute_source.html">Lucene.Net.Util.AttributeSource</a></td></tr>
<tr class="memitem:a2d4a930c02c088e18b14c25e94f5089b inherit properties_class_lucene_1_1_net_1_1_util_1_1_attribute_source"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_lucene_1_1_net_1_1_util_1_1_attribute_source_1_1_attribute_factory.html">AttributeFactory</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_attribute_source.html#a2d4a930c02c088e18b14c25e94f5089b">Factory</a><code> [get]</code></td></tr>
<tr class="memdesc:a2d4a930c02c088e18b14c25e94f5089b inherit properties_class_lucene_1_1_net_1_1_util_1_1_attribute_source"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the used <a class="el" href="class_lucene_1_1_net_1_1_util_1_1_attribute_source_1_1_attribute_factory.html" title="An AttributeFactory creates instances of Attributes.">AttributeFactory</a>. <a href="#a2d4a930c02c088e18b14c25e94f5089b"></a><br/></td></tr>
<tr class="separator:a2d4a930c02c088e18b14c25e94f5089b inherit properties_class_lucene_1_1_net_1_1_util_1_1_attribute_source"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7335286469fdd008e4a7d40cc97056ab inherit properties_class_lucene_1_1_net_1_1_util_1_1_attribute_source"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_attribute_source.html#a7335286469fdd008e4a7d40cc97056ab">HasAttributes</a><code> [get]</code></td></tr>
<tr class="memdesc:a7335286469fdd008e4a7d40cc97056ab inherit properties_class_lucene_1_1_net_1_1_util_1_1_attribute_source"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true, iff this <a class="el" href="class_lucene_1_1_net_1_1_util_1_1_attribute_source.html" title="An AttributeSource contains a list of different Attributes, and methods to add and get them...">AttributeSource</a> has any attributes  <a href="#a7335286469fdd008e4a7d40cc97056ab"></a><br/></td></tr>
<tr class="separator:a7335286469fdd008e4a7d40cc97056ab inherit properties_class_lucene_1_1_net_1_1_util_1_1_attribute_source"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Emits the entire input as a single token.</p>

<p>Definition at line <a class="el" href="_keyword_tokenizer_8cs_source.html#l00025">25</a> of file <a class="el" href="_keyword_tokenizer_8cs_source.html">KeywordTokenizer.cs</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a423746f4ec5de24112109cda90962b82"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Lucene.Net.Analysis.KeywordTokenizer.KeywordTokenizer </td>
          <td>(</td>
          <td class="paramtype">System.IO.TextReader&#160;</td>
          <td class="paramname"><em>input</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_keyword_tokenizer_8cs_source.html#l00035">35</a> of file <a class="el" href="_keyword_tokenizer_8cs_source.html">KeywordTokenizer.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a0071eebe48412a5b27ebaa2fca5c6eb4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Lucene.Net.Analysis.KeywordTokenizer.KeywordTokenizer </td>
          <td>(</td>
          <td class="paramtype">System.IO.TextReader&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bufferSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_keyword_tokenizer_8cs_source.html#l00039">39</a> of file <a class="el" href="_keyword_tokenizer_8cs_source.html">KeywordTokenizer.cs</a>.</p>

</div>
</div>
<a class="anchor" id="a978a10cf937c2850a7699d4f6357a250"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Lucene.Net.Analysis.KeywordTokenizer.KeywordTokenizer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="_char_tokenizer_8cs.html#aed60c4e663aea1a7dec59cf4c3710058">AttributeSource</a>&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">System.IO.TextReader&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bufferSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_keyword_tokenizer_8cs_source.html#l00044">44</a> of file <a class="el" href="_keyword_tokenizer_8cs_source.html">KeywordTokenizer.cs</a>.</p>

</div>
</div>
<a class="anchor" id="aa3fb99956cc8a91796261295450c89b2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Lucene.Net.Analysis.KeywordTokenizer.KeywordTokenizer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_lucene_1_1_net_1_1_util_1_1_attribute_source_1_1_attribute_factory.html">AttributeFactory</a>&#160;</td>
          <td class="paramname"><em>factory</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">System.IO.TextReader&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>bufferSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Definition at line <a class="el" href="_keyword_tokenizer_8cs_source.html#l00049">49</a> of file <a class="el" href="_keyword_tokenizer_8cs_source.html">KeywordTokenizer.cs</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a7fe3d1d728eaf72091edb0646ea25942"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">override void Lucene.Net.Analysis.KeywordTokenizer.End </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>This method is called by the consumer after the last token has been consumed, after <a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_keyword_tokenizer.html#ac4e0336424543660beb924f2c091c94e" title="Consumers (i.e., IndexWriter) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate Util.Attributes with the attributes of the next token.">IncrementToken</a> returned <code>false</code> (using the new <code><a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_token_stream.html" title="A TokenStream enumerates the sequence of tokens, either from Fields of a Document or from query text...">TokenStream</a></code> API). Streams implementing the old API should upgrade to use this feature. This method can be used to perform any end-of-stream operations, such as setting the final offset of a stream. The final offset of a stream might differ from the offset of the last token eg in case one or more whitespaces followed after the last token, but a <a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_whitespace_tokenizer.html" title="A WhitespaceTokenizer is a tokenizer that divides text at whitespace. Adjacent sequences of non-White...">WhitespaceTokenizer</a> was used. </p>
<p>&lt;throws&gt; IOException &lt;/throws&gt; </p>

<p>Reimplemented from <a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_token_stream.html#a92b3c4eab12fbf83daa07b7684cfbcaf">Lucene.Net.Analysis.TokenStream</a>.</p>

<p>Definition at line <a class="el" href="_keyword_tokenizer_8cs_source.html#l00087">87</a> of file <a class="el" href="_keyword_tokenizer_8cs_source.html">KeywordTokenizer.cs</a>.</p>

</div>
</div>
<a class="anchor" id="ac4e0336424543660beb924f2c091c94e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">override bool Lucene.Net.Analysis.KeywordTokenizer.IncrementToken </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Consumers (i.e., <a class="el" href="_f_s_directory_8cs.html#a7d90824eac5b2433e714cc9faeb34d1b">IndexWriter</a>) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate <a class="el" href="class_lucene_1_1_net_1_1_util_1_1_attribute.html" title="Base class for Attributes that can be added to a Lucene.Net.Util.AttributeSource. Attributes are used...">Util.Attribute</a>s with the attributes of the next token. </p>
<p>The producer must make no assumptions about the attributes after the method has been returned: the caller may arbitrarily change it. If the producer needs to preserve the state for subsequent calls, it can use AttributeSource.CaptureState to create a copy of the current attribute state.</p>
<p>This method is called for every token of a document, so an efficient implementation is crucial for good performance. To avoid calls to AttributeSource.AddAttribute{T}() and AttributeSource.GetAttribute{T}(), references to all <a class="el" href="class_lucene_1_1_net_1_1_util_1_1_attribute.html" title="Base class for Attributes that can be added to a Lucene.Net.Util.AttributeSource. Attributes are used...">Util.Attribute</a>s that this stream uses should be retrieved during instantiation.</p>
<p>To ensure that filters and consumers know which attributes are available, the attributes must be added during instantiation. Filters and consumers are not required to check for availability of attributes in <a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_keyword_tokenizer.html#ac4e0336424543660beb924f2c091c94e" title="Consumers (i.e., IndexWriter) use this method to advance the stream to the next token. Implementing classes must implement this method and update the appropriate Util.Attributes with the attributes of the next token.">IncrementToken()</a>.</p>
<dl class="section return"><dt>Returns</dt><dd>false for end of stream; true otherwise</dd></dl>

<p>Implements <a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_token_stream.html#a358a544108511440a57b134e722f6027">Lucene.Net.Analysis.TokenStream</a>.</p>

<p>Definition at line <a class="el" href="_keyword_tokenizer_8cs_source.html#l00062">62</a> of file <a class="el" href="_keyword_tokenizer_8cs_source.html">KeywordTokenizer.cs</a>.</p>

</div>
</div>
<a class="anchor" id="af0e7b8c4d71a79011a45d6c8958b4ecb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">override void Lucene.Net.Analysis.KeywordTokenizer.Reset </td>
          <td>(</td>
          <td class="paramtype">System.IO.TextReader&#160;</td>
          <td class="paramname"><em>input</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Expert: Reset the tokenizer to a new reader. Typically, an analyzer (in its reusableTokenStream method) will use this to re-use a previously created tokenizer. </p>

<p>Reimplemented from <a class="el" href="class_lucene_1_1_net_1_1_analysis_1_1_tokenizer.html#ab79d84adefa171ac7d1a804153839546">Lucene.Net.Analysis.Tokenizer</a>.</p>

<p>Definition at line <a class="el" href="_keyword_tokenizer_8cs_source.html#l00093">93</a> of file <a class="el" href="_keyword_tokenizer_8cs_source.html">KeywordTokenizer.cs</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>core/Analysis/<a class="el" href="_keyword_tokenizer_8cs_source.html">KeywordTokenizer.cs</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 3 2013 02:12:47 for Lucene.Net by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3
</small></address>
</body>
</html>
