<!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.Index.ITermFreqVector Interface 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_index.html">Index</a></li><li class="navelem"><a class="el" href="interface_lucene_1_1_net_1_1_index_1_1_i_term_freq_vector.html">ITermFreqVector</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#properties">Properties</a> &#124;
<a href="interface_lucene_1_1_net_1_1_index_1_1_i_term_freq_vector-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Lucene.Net.Index.ITermFreqVector Interface Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Provides access to stored term vector of a document field. The vector consists of the name of the field, an array of the terms tha occur in the field of the <a class="el" href="class_lucene_1_1_net_1_1_documents_1_1_document.html" title="Documents are the unit of indexing and search.">Lucene.Net.Documents.Document</a> and a parallel array of frequencies. Thus, getTermFrequencies()[5] corresponds with the frequency of getTerms()[5], assuming there are at least 5 terms in the Document.  
 <a href="interface_lucene_1_1_net_1_1_index_1_1_i_term_freq_vector.html#details">More...</a></p>

<p>Inherited by <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_empty_vector.html">Lucene.Net.Index.EmptyVector</a>, <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_term_vector.html">Lucene.Net.Index.SegmentTermVector</a>, <a class="el" href="interface_lucene_1_1_net_1_1_index_1_1_term_position_vector.html">Lucene.Net.Index.TermPositionVector</a>, and <a class="el" href="class_lucene_1_1_net_1_1_search_1_1_query_term_vector.html">Lucene.Net.Search.QueryTermVector</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:a9a0fd66926229e5509e05a7e7358e8f5"><td class="memItemLeft" align="right" valign="top">System.String[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_lucene_1_1_net_1_1_index_1_1_i_term_freq_vector.html#a9a0fd66926229e5509e05a7e7358e8f5">GetTerms</a> ()</td></tr>
<tr class="separator:a9a0fd66926229e5509e05a7e7358e8f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac369bbcf6b0c91d554f7b5c6ad037fa8"><td class="memItemLeft" align="right" valign="top">int[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_lucene_1_1_net_1_1_index_1_1_i_term_freq_vector.html#ac369bbcf6b0c91d554f7b5c6ad037fa8">GetTermFrequencies</a> ()</td></tr>
<tr class="memdesc:ac369bbcf6b0c91d554f7b5c6ad037fa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of term frequencies. Locations of the array correspond one to one to the terms in the array obtained from <code>getTerms</code> method. Each location in the array contains the number of times this term occurs in the document or the document field.  <a href="#ac369bbcf6b0c91d554f7b5c6ad037fa8"></a><br/></td></tr>
<tr class="separator:ac369bbcf6b0c91d554f7b5c6ad037fa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2c0a663dfc703b4dc655b4ee6d4c0e5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_lucene_1_1_net_1_1_index_1_1_i_term_freq_vector.html#ac2c0a663dfc703b4dc655b4ee6d4c0e5">IndexOf</a> (System.String term)</td></tr>
<tr class="memdesc:ac2c0a663dfc703b4dc655b4ee6d4c0e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an index in the term numbers array returned from <code>getTerms</code> at which the term with the specified <code>term</code> appears. If this term does not appear in the array, return -1.  <a href="#ac2c0a663dfc703b4dc655b4ee6d4c0e5"></a><br/></td></tr>
<tr class="separator:ac2c0a663dfc703b4dc655b4ee6d4c0e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76975965af10a9b4a0ec1aa86e31ad36"><td class="memItemLeft" align="right" valign="top">int[]&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_lucene_1_1_net_1_1_index_1_1_i_term_freq_vector.html#a76975965af10a9b4a0ec1aa86e31ad36">IndexesOf</a> (System.String[] terms, int start, int len)</td></tr>
<tr class="memdesc:a76975965af10a9b4a0ec1aa86e31ad36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Just like <code>indexOf(int)</code> but searches for a number of terms at the same time. Returns an array that has the same size as the number of terms searched for, each slot containing the result of searching for that term number.  <a href="#a76975965af10a9b4a0ec1aa86e31ad36"></a><br/></td></tr>
<tr class="separator:a76975965af10a9b4a0ec1aa86e31ad36"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="properties"></a>
Properties</h2></td></tr>
<tr class="memitem:ac972fabbf5770adfb80bd3020de8a151"><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_lucene_1_1_net_1_1_index_1_1_i_term_freq_vector.html#ac972fabbf5770adfb80bd3020de8a151">Field</a><code> [get]</code></td></tr>
<tr class="memdesc:ac972fabbf5770adfb80bd3020de8a151"><td class="mdescLeft">&#160;</td><td class="mdescRight">The IFieldable name.  <a href="#ac972fabbf5770adfb80bd3020de8a151"></a><br/></td></tr>
<tr class="separator:ac972fabbf5770adfb80bd3020de8a151"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab34a8a8864a856841b9591113996180c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="interface_lucene_1_1_net_1_1_index_1_1_i_term_freq_vector.html#ab34a8a8864a856841b9591113996180c">Size</a><code> [get]</code></td></tr>
<tr class="memdesc:ab34a8a8864a856841b9591113996180c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of terms in the term vector.  <a href="#ab34a8a8864a856841b9591113996180c"></a><br/></td></tr>
<tr class="separator:ab34a8a8864a856841b9591113996180c"><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>Provides access to stored term vector of a document field. The vector consists of the name of the field, an array of the terms tha occur in the field of the <a class="el" href="class_lucene_1_1_net_1_1_documents_1_1_document.html" title="Documents are the unit of indexing and search.">Lucene.Net.Documents.Document</a> and a parallel array of frequencies. Thus, getTermFrequencies()[5] corresponds with the frequency of getTerms()[5], assuming there are at least 5 terms in the Document. </p>

<p>Definition at line <a class="el" href="_term_freq_vector_8cs_source.html#l00029">29</a> of file <a class="el" href="_term_freq_vector_8cs_source.html">TermFreqVector.cs</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ac369bbcf6b0c91d554f7b5c6ad037fa8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int [] Lucene.Net.Index.ITermFreqVector.GetTermFrequencies </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Array of term frequencies. Locations of the array correspond one to one to the terms in the array obtained from <code>getTerms</code> method. Each location in the array contains the number of times this term occurs in the document or the document field. </p>

<p>Implemented in <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_empty_vector.html#a7480b84639935b2330af4bcb560f999c">Lucene.Net.Index.EmptyVector</a>, <a class="el" href="class_lucene_1_1_net_1_1_search_1_1_query_term_vector.html#a5be25bbf2116042a71a9fdc067c4dc45">Lucene.Net.Search.QueryTermVector</a>, and <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_term_vector.html#acc5ccdaf65efd6f77e287b7ef0f32cce">Lucene.Net.Index.SegmentTermVector</a>.</p>

</div>
</div>
<a class="anchor" id="a9a0fd66926229e5509e05a7e7358e8f5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">System.String [] Lucene.Net.Index.ITermFreqVector.GetTerms </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>An Array of term texts in ascending order. </dd></dl>

<p>Implemented in <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_empty_vector.html#a4fe622a8f74e876f6b52c853c6c00116">Lucene.Net.Index.EmptyVector</a>, <a class="el" href="class_lucene_1_1_net_1_1_search_1_1_query_term_vector.html#ab49b85c75f1ea67dc76b7c035e435b29">Lucene.Net.Search.QueryTermVector</a>, and <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_term_vector.html#a9fa8dc2b71a428b02bdd00c5199797f5">Lucene.Net.Index.SegmentTermVector</a>.</p>

</div>
</div>
<a class="anchor" id="a76975965af10a9b4a0ec1aa86e31ad36"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int [] Lucene.Net.Index.ITermFreqVector.IndexesOf </td>
          <td>(</td>
          <td class="paramtype">System.String[]&#160;</td>
          <td class="paramname"><em>terms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Just like <code>indexOf(int)</code> but searches for a number of terms at the same time. Returns an array that has the same size as the number of terms searched for, each slot containing the result of searching for that term number. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">terms</td><td>array containing terms to look for </td></tr>
    <tr><td class="paramname">start</td><td>index in the array where the list of terms starts </td></tr>
    <tr><td class="paramname">len</td><td>the number of terms in the list </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="class_lucene_1_1_net_1_1_search_1_1_query_term_vector.html#a97706bef590850ba4a113b381af83c5f">Lucene.Net.Search.QueryTermVector</a>, and <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_term_vector.html#a726d455da11bb28c0480bdfb11dc88d9">Lucene.Net.Index.SegmentTermVector</a>.</p>

</div>
</div>
<a class="anchor" id="ac2c0a663dfc703b4dc655b4ee6d4c0e5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Lucene.Net.Index.ITermFreqVector.IndexOf </td>
          <td>(</td>
          <td class="paramtype">System.String&#160;</td>
          <td class="paramname"><em>term</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return an index in the term numbers array returned from <code>getTerms</code> at which the term with the specified <code>term</code> appears. If this term does not appear in the array, return -1. </p>

<p>Implemented in <a class="el" href="class_lucene_1_1_net_1_1_search_1_1_query_term_vector.html#aa4b6225985a284a17586bd5523d75324">Lucene.Net.Search.QueryTermVector</a>, and <a class="el" href="class_lucene_1_1_net_1_1_index_1_1_segment_term_vector.html#a097e6e3158d3e87eb509d14f07a4cf41">Lucene.Net.Index.SegmentTermVector</a>.</p>

</div>
</div>
<h2 class="groupheader">Property Documentation</h2>
<a class="anchor" id="ac972fabbf5770adfb80bd3020de8a151"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">string Lucene.Net.Index.ITermFreqVector.Field</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The IFieldable name. </p>
<p>The name of the field this vector is associated with. </p>

<p>Definition at line <a class="el" href="_term_freq_vector_8cs_source.html#l00033">33</a> of file <a class="el" href="_term_freq_vector_8cs_source.html">TermFreqVector.cs</a>.</p>

</div>
</div>
<a class="anchor" id="ab34a8a8864a856841b9591113996180c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int Lucene.Net.Index.ITermFreqVector.Size</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">get</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The number of terms in the term vector. </p>

<p>Definition at line <a class="el" href="_term_freq_vector_8cs_source.html#l00036">36</a> of file <a class="el" href="_term_freq_vector_8cs_source.html">TermFreqVector.cs</a>.</p>

</div>
</div>
<hr/>The documentation for this interface was generated from the following file:<ul>
<li>core/Index/<a class="el" href="_term_freq_vector_8cs_source.html">TermFreqVector.cs</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 3 2013 02:12:55 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>
