blob: 7c0513697d32ebd5fb48208a25ab0d578eb8fa77 [file] [log] [blame]
<!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: core/Index/IndexReader.cs Source File</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><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#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="dir_1efe588324fc547683bba4a3f1bac847.html">core</a></li><li class="navelem"><a class="el" href="dir_508bd2a9867f606940156debe4946ca8.html">Index</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">IndexReader.cs</div> </div>
</div><!--header-->
<div class="contents">
<a href="_index_reader_8cs.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* </span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * contributor license agreements. See the NOTICE file distributed with</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * this work for additional information regarding copyright ownership.</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * (the &quot;License&quot;); you may not use this file except in compliance with</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * the License. You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * See the License for the specific language governing permissions and</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * limitations under the License.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">using</span> System;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">using</span> System.Collections.Generic;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">using</span> Lucene.Net.Documents;</div>
<div class="line"><a name="l00021"></a><span class="lineno"><a class="code" href="_index_reader_8cs.html#a2ad6aef8641c7b7a6cf9277f7d54b2cd"> 21</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_documents_1_1_document.html" title="Documents are the unit of indexing and search.">Document</a> = Lucene.Net.Documents.<a class="code" href="class_lucene_1_1_net_1_1_documents_1_1_document.html#aa52ffd7ef0a06212a49184862d6bcc16" title="Constructs a new document with no fields. ">Document</a>;</div>
<div class="line"><a name="l00022"></a><span class="lineno"><a class="code" href="_index_reader_8cs.html#a64b447ee53d30ce66ebd27b2715e7bca"> 22</a></span>&#160;<span class="keyword">using</span> <a class="code" href="interface_lucene_1_1_net_1_1_documents_1_1_field_selector.html" title="Similar to a java.io.FileFilter, the FieldSelector allows one to make decisions about what Fields get...">FieldSelector</a> = Lucene.Net.Documents.FieldSelector;</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">using</span> Lucene.Net.Store;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="code" href="_index_reader_8cs.html#a5431a3a4edd067eec50ca39b5ea99c31"> 24</a></span>&#160;<span class="keyword">using</span> <a class="code" href="_documents_writer_8cs.html#a5431a3a4edd067eec50ca39b5ea99c31">Similarity</a> = Lucene.Net.Search.Similarity;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span>Lucene.Net.Index</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html"> 65</a></span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class </span><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> : System.ICloneable, System.IDisposable</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFindSegmentsFile : <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html" title="A collection of segmentInfo objects with methods for operating on those segments in relation to the f...">SegmentInfos</a>.FindSegmentsFile</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">private</span> <span class="keywordtype">void</span> InitBlock(Lucene.Net.Store.Directory directory2)</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; this.directory2 = directory2;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">private</span> Lucene.Net.Store.Directory directory2;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">internal</span> AnonymousClassFindSegmentsFile(Lucene.Net.Store.Directory directory2, Lucene.Net.Store.Directory Param1):base(Param1)</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; InitBlock(directory2);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> System.Object DoBody(System.String segmentFileName)</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">long</span>) directory2.FileModified(segmentFileName);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html"> 87</a></span>&#160; <span class="keyword">public</span> sealed <span class="keyword">class </span><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html" title="Constants describing field properties, for example used for IndexReader.GetFieldNames(FieldOption). ">FieldOption</a></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">private</span> readonly System.String option;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">internal</span> <a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a>()</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">internal</span> <a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a>(System.String option)</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; this.option = option;</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html#ad5b171230c1472f710f9e3382958e6b6"> 97</a></span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> System.String ToString()</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> this.option;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html#abcc750a498c4a5b08a66e1451021211d"> 102</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> readonly <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html" title="Constants describing field properties, for example used for IndexReader.GetFieldNames(FieldOption). ">FieldOption</a> ALL = <span class="keyword">new</span> <a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a>(<span class="stringliteral">&quot;ALL&quot;</span>);</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html#a914f367359614ee720cf9bbd5071689e"> 104</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> readonly <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html" title="Constants describing field properties, for example used for IndexReader.GetFieldNames(FieldOption). ">FieldOption</a> INDEXED = <span class="keyword">new</span> <a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a>(<span class="stringliteral">&quot;INDEXED&quot;</span>);</div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html#a35a273cac6beeae1a19bd31983cb7b52"> 106</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> readonly <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html" title="Constants describing field properties, for example used for IndexReader.GetFieldNames(FieldOption). ">FieldOption</a> STORES_PAYLOADS = <span class="keyword">new</span> <a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a>(<span class="stringliteral">&quot;STORES_PAYLOADS&quot;</span>);</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html#a54fe488fc1897f3510a71e2d0da9aae8"> 108</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> readonly <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html" title="Constants describing field properties, for example used for IndexReader.GetFieldNames(FieldOption). ">FieldOption</a> OMIT_TERM_FREQ_AND_POSITIONS = <span class="keyword">new</span> <a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a>(<span class="stringliteral">&quot;OMIT_TERM_FREQ_AND_POSITIONS&quot;</span>);</div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html#ace0cbf9af189b17d2dcd4775c58a5e53"> 110</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> readonly <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html" title="Constants describing field properties, for example used for IndexReader.GetFieldNames(FieldOption). ">FieldOption</a> UNINDEXED = <span class="keyword">new</span> <a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a>(<span class="stringliteral">&quot;UNINDEXED&quot;</span>);</div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html#a904597b437bc1e075fcd99f9d9854066"> 112</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> readonly <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html" title="Constants describing field properties, for example used for IndexReader.GetFieldNames(FieldOption). ">FieldOption</a> INDEXED_WITH_TERMVECTOR = <span class="keyword">new</span> <a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a>(<span class="stringliteral">&quot;INDEXED_WITH_TERMVECTOR&quot;</span>);</div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html#a9b0831095ca12039319ec4bcff7c8b99"> 114</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> readonly <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html" title="Constants describing field properties, for example used for IndexReader.GetFieldNames(FieldOption). ">FieldOption</a> INDEXED_NO_TERMVECTOR = <span class="keyword">new</span> <a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a>(<span class="stringliteral">&quot;INDEXED_NO_TERMVECTOR&quot;</span>);</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html#aa83fb08859c4af75d001ed65d31170fe"> 116</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> readonly <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html" title="Constants describing field properties, for example used for IndexReader.GetFieldNames(FieldOption). ">FieldOption</a> TERMVECTOR = <span class="keyword">new</span> <a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a>(<span class="stringliteral">&quot;TERMVECTOR&quot;</span>);</div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html#af7248ce6f5ecccb8d190150f6812c521"> 118</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> readonly <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html" title="Constants describing field properties, for example used for IndexReader.GetFieldNames(FieldOption). ">FieldOption</a> TERMVECTOR_WITH_POSITION = <span class="keyword">new</span> <a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a>(<span class="stringliteral">&quot;TERMVECTOR_WITH_POSITION&quot;</span>);</div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html#a0d5868d7c5e5102a89c349d38fcbb901"> 120</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> readonly <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html" title="Constants describing field properties, for example used for IndexReader.GetFieldNames(FieldOption). ">FieldOption</a> TERMVECTOR_WITH_OFFSET = <span class="keyword">new</span> <a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a>(<span class="stringliteral">&quot;TERMVECTOR_WITH_OFFSET&quot;</span>);</div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html#a08feb05553f35e43ec8856073c226aa8"> 122</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> readonly <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader_1_1_field_option.html" title="Constants describing field properties, for example used for IndexReader.GetFieldNames(FieldOption). ">FieldOption</a> TERMVECTOR_WITH_POSITION_OFFSET = <span class="keyword">new</span> <a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a>(<span class="stringliteral">&quot;TERMVECTOR_WITH_POSITION_OFFSET&quot;</span>);</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">private</span> <span class="keywordtype">bool</span> closed;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keywordtype">bool</span> hasChanges;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> refCount;</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">static</span> <span class="keywordtype">int</span> DEFAULT_TERMS_INDEX_DIVISOR = 1;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">int</span> RefCount</div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a9632e524a7f614fc4b1358a16bd0b4de"> 134</a></span>&#160; {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">get</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> refCount;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a708656e6bce03eae40f2d08151ef4017"> 158</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> IncRef()</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; System.Diagnostics.Debug.Assert(refCount &gt; 0);</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; refCount++;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a8bfc113eced23a4b5a1fabb756d1977a"> 179</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> DecRef()</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; System.Diagnostics.Debug.Assert(refCount &gt; 0);</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span> (refCount == 1)</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; {</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; Commit();</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; DoClose();</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; refCount--;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <a class="code" href="_more_like_this_8cs.html#a2a6914ea10bbe06764856e29e5674e66">IndexReader</a>()</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; refCount = 1;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keywordtype">void</span> EnsureOpen()</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span> (refCount &lt;= 0)</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> <a class="code" href="_documents_writer_8cs.html#a3bd6418bcbeb676f7dad24a00a2d6903">AlreadyClosedException</a>(<span class="stringliteral">&quot;this IndexReader is closed&quot;</span>);</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#ad51f1feca975e447b6486d01ed24e1ea"> 218</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> Open(<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_directory.html" title="A Directory is a flat list of files. Files may be written once, when they are created. Once a file is created it may only be opened for read, or deleted. Random access is permitted both when reading and writing.">Directory</a> directory, <span class="keywordtype">bool</span> readOnly)</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> Open(directory, null, null, readOnly, DEFAULT_TERMS_INDEX_DIVISOR);</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
<div class="line"><a name="l00235"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#ac65de03d67a43ad405662f5d7ccf6b8e"> 235</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> Open(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_commit.html" title="Expert: represents a single commit into an index as seen by the IndexDeletionPolicy or IndexReader...">IndexCommit</a> commit, <span class="keywordtype">bool</span> readOnly)</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</span> Open(commit.<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_commit.html#a202915c427e2803d1162af43dbbb705b" title="Returns the Store.Directory for the index.">Directory</a>, null, commit, readOnly, DEFAULT_TERMS_INDEX_DIVISOR);</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
<div class="line"><a name="l00257"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a3af65a9b14014f893a9bcc4c52557f5c"> 257</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> Open(<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_directory.html" title="A Directory is a flat list of files. Files may be written once, when they are created. Once a file is created it may only be opened for read, or deleted. Random access is permitted both when reading and writing.">Directory</a> directory, <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_index_deletion_policy.html" title="Expert: policy for deletion of stale index commits.">IndexDeletionPolicy</a> deletionPolicy, <span class="keywordtype">bool</span> readOnly)</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> Open(directory, deletionPolicy, null, readOnly, DEFAULT_TERMS_INDEX_DIVISOR);</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
<div class="line"><a name="l00291"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a7fb2d9e7c2ee967a47b0147214c3c452"> 291</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> Open(<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_directory.html" title="A Directory is a flat list of files. Files may be written once, when they are created. Once a file is created it may only be opened for read, or deleted. Random access is permitted both when reading and writing.">Directory</a> directory, <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_index_deletion_policy.html" title="Expert: policy for deletion of stale index commits.">IndexDeletionPolicy</a> deletionPolicy, <span class="keywordtype">bool</span> readOnly, <span class="keywordtype">int</span> termInfosIndexDivisor)</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">return</span> Open(directory, deletionPolicy, null, readOnly, termInfosIndexDivisor);</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; </div>
<div class="line"><a name="l00315"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#ac436899197af7c17e2d24d5384918d6f"> 315</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> Open(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_commit.html" title="Expert: represents a single commit into an index as seen by the IndexDeletionPolicy or IndexReader...">IndexCommit</a> commit, <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_index_deletion_policy.html" title="Expert: policy for deletion of stale index commits.">IndexDeletionPolicy</a> deletionPolicy, <span class="keywordtype">bool</span> readOnly)</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; {</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> Open(commit.<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_commit.html#a202915c427e2803d1162af43dbbb705b" title="Returns the Store.Directory for the index.">Directory</a>, deletionPolicy, commit, readOnly, DEFAULT_TERMS_INDEX_DIVISOR);</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
<div class="line"><a name="l00351"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a21bfa244441089e6d787c2342c96029a"> 351</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> Open(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_commit.html" title="Expert: represents a single commit into an index as seen by the IndexDeletionPolicy or IndexReader...">IndexCommit</a> commit, <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_index_deletion_policy.html" title="Expert: policy for deletion of stale index commits.">IndexDeletionPolicy</a> deletionPolicy, <span class="keywordtype">bool</span> readOnly, <span class="keywordtype">int</span> termInfosIndexDivisor)</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; {</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">return</span> Open(commit.<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_commit.html#a202915c427e2803d1162af43dbbb705b" title="Returns the Store.Directory for the index.">Directory</a>, deletionPolicy, commit, readOnly, termInfosIndexDivisor);</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; }</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; </div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">private</span> <span class="keyword">static</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> Open(<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_directory.html" title="A Directory is a flat list of files. Files may be written once, when they are created. Once a file is created it may only be opened for read, or deleted. Random access is permitted both when reading and writing.">Directory</a> directory, <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_index_deletion_policy.html" title="Expert: policy for deletion of stale index commits.">IndexDeletionPolicy</a> deletionPolicy, <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_commit.html" title="Expert: represents a single commit into an index as seen by the IndexDeletionPolicy or IndexReader...">IndexCommit</a> commit, <span class="keywordtype">bool</span> readOnly, <span class="keywordtype">int</span> termInfosIndexDivisor)</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; {</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_directory_reader.html" title="An IndexReader which reads indexes with multiple segments.">DirectoryReader</a>.Open(directory, deletionPolicy, commit, readOnly, termInfosIndexDivisor);</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; </div>
<div class="line"><a name="l00405"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#afdbae91b13509eca9832c2b4aa33591d"> 405</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> Reopen()</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; {</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; {</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> NotSupportedException(<span class="stringliteral">&quot;This reader does not support reopen().&quot;</span>);</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; </div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; </div>
<div class="line"><a name="l00419"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#abb66442edce6525c0590527596649466"> 419</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> Reopen(<span class="keywordtype">bool</span> openReadOnly)</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; {</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; {</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> NotSupportedException(<span class="stringliteral">&quot;This reader does not support reopen().&quot;</span>);</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; </div>
<div class="line"><a name="l00434"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a472e464ae2c2614f5a1393eaaf8b30fd"> 434</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> Reopen(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_commit.html" title="Expert: represents a single commit into an index as seen by the IndexDeletionPolicy or IndexReader...">IndexCommit</a> commit)</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; {</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> NotSupportedException(<span class="stringliteral">&quot;This reader does not support reopen(IndexCommit).&quot;</span>);</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; </div>
<div class="line"><a name="l00460"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a85d97a1e9145da71986b43a0c9f162b5"> 460</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> System.Object Clone()</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; {</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> System.NotSupportedException(<span class="stringliteral">&quot;This reader does not implement clone()&quot;</span>);</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; </div>
<div class="line"><a name="l00470"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a7e8762cda4403eb997382f9aa841c486"> 470</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> Clone(<span class="keywordtype">bool</span> openReadOnly)</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; {</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; {</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> System.NotSupportedException(<span class="stringliteral">&quot;This reader does not implement clone()&quot;</span>);</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; }</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; }</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; </div>
<div class="line"><a name="l00484"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a19fcb28d3de623659083037f65496d48"> 484</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_store_1_1_directory.html" title="A Directory is a flat list of files. Files may be written once, when they are created. Once a file is created it may only be opened for read, or deleted. Random access is permitted both when reading and writing.">Directory</a> <a class="code" href="namespace_spell_checker_1_1_net_1_1_search_1_1_spell.html#a09ca88ecfd50bf7b75997e3fe8df6698">Directory</a>()</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; {</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> NotSupportedException(<span class="stringliteral">&quot;This reader does not support this method.&quot;</span>);</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; }</div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; </div>
<div class="line"><a name="l00496"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#acd833156064d8205cdb330f56ee9374a"> 496</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> <span class="keywordtype">long</span> LastModified(<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_directory.html" title="A Directory is a flat list of files. Files may be written once, when they are created. Once a file is created it may only be opened for read, or deleted. Random access is permitted both when reading and writing.">Directory</a> directory2)</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; {</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">long</span>) ((System.Int64) <span class="keyword">new</span> AnonymousClassFindSegmentsFile(directory2, directory2).Run());</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; </div>
<div class="line"><a name="l00512"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#aeffbf34aec5b328a1637a2b0e68902a4"> 512</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> <span class="keywordtype">long</span> GetCurrentVersion(<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_directory.html" title="A Directory is a flat list of files. Files may be written once, when they are created. Once a file is created it may only be opened for read, or deleted. Random access is permitted both when reading and writing.">Directory</a> directory)</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; {</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html" title="A collection of segmentInfo objects with methods for operating on those segments in relation to the f...">SegmentInfos</a>.<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html#a50a48aff89e02201e2ae68cd5cf08d73" title="Current version number from segments file.">ReadCurrentVersion</a>(directory);</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; }</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div>
<div class="line"><a name="l00533"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a9cb47d1bfbb41869b706163ca46da1e4"> 533</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> System.Collections.Generic.IDictionary&lt;string, <span class="keywordtype">string</span>&gt; GetCommitUserData(<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_directory.html" title="A Directory is a flat list of files. Files may be written once, when they are created. Once a file is created it may only be opened for read, or deleted. Random access is permitted both when reading and writing.">Directory</a> directory)</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; {</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html" title="A collection of segmentInfo objects with methods for operating on those segments in relation to the f...">SegmentInfos</a>.<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html#a603c9e9336f6124f459c4a65163ecdd3" title="Returns userData from latest segments file">ReadCurrentUserData</a>(directory);</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; }</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="_arabic_analyzer_8cs.html#a63c914dcb7d19365ff0f7c6ea7ef77c4">Version</a></div>
<div class="line"><a name="l00565"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#aad20c89b2d918432b2083d6db38b6f99"> 565</a></span>&#160; {</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">throw</span> <span class="keyword">new</span> System.NotSupportedException(<span class="stringliteral">&quot;This reader does not support this method.&quot;</span>); }</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> IDictionary&lt;string, string&gt; CommitUserData</div>
<div class="line"><a name="l00578"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a4b55ed6495684a88e35b92b02da238f2"> 578</a></span>&#160; {</div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">throw</span> <span class="keyword">new</span> System.NotSupportedException(<span class="stringliteral">&quot;This reader does not support this method.&quot;</span>); }</div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; }</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div>
<div class="line"><a name="l00612"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a3f912bfed2d6e04c0eb11885c0d048e2"> 612</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> IsCurrent()</div>
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; {</div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> NotSupportedException(<span class="stringliteral">&quot;This reader does not support this method.&quot;</span>);</div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; }</div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div>
<div class="line"><a name="l00622"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#abd8de391e51a329838a5f18c80480d60"> 622</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> IsOptimized()</div>
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; {</div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">throw</span> <span class="keyword">new</span> NotSupportedException(<span class="stringliteral">&quot;This reader does not support this method.&quot;</span>);</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; }</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keyword">abstract</span> <span class="keyword">public</span> <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_i_term_freq_vector.html" title="Provides access to stored term vector of a document field. The vector consists of the name of the fie...">ITermFreqVector</a>[] GetTermFreqVectors(<span class="keywordtype">int</span> docNumber);</div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; </div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; </div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keyword">abstract</span> <span class="keyword">public</span> <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_i_term_freq_vector.html" title="Provides access to stored term vector of a document field. The vector consists of the name of the fie...">ITermFreqVector</a> GetTermFreqVector(<span class="keywordtype">int</span> docNumber, String field);</div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; </div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keyword">abstract</span> <span class="keyword">public</span> <span class="keywordtype">void</span> GetTermFreqVector(<span class="keywordtype">int</span> docNumber, String field, <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_term_vector_mapper.html" title="The TermVectorMapper can be used to map Term Vectors into your own structure instead of the parallel ...">TermVectorMapper</a> mapper);</div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; </div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keyword">abstract</span> <span class="keyword">public</span> <span class="keywordtype">void</span> GetTermFreqVector(<span class="keywordtype">int</span> docNumber, <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_term_vector_mapper.html" title="The TermVectorMapper can be used to map Term Vectors into your own structure instead of the parallel ...">TermVectorMapper</a> mapper);</div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; </div>
<div class="line"><a name="l00696"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#ad520cfb53db384fc3249e7ff4a8b2e97"> 696</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IndexExists(<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_directory.html" title="A Directory is a flat list of files. Files may be written once, when they are created. Once a file is created it may only be opened for read, or deleted. Random access is permitted both when reading and writing.">Directory</a> directory)</div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; {</div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html" title="A collection of segmentInfo objects with methods for operating on those segments in relation to the f...">SegmentInfos</a>.<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_segment_infos.html#a124c6deff913e99aeb3a2edf6534edfc" title="Get the generation (N) of the current segments_N file from a list of files.">GetCurrentSegmentGeneration</a>(directory) != - 1;</div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; }</div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;</div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; [System.Diagnostics.CodeAnalysis.SuppressMessage(<span class="stringliteral">&quot;Microsoft.Design&quot;</span>, <span class="stringliteral">&quot;CA1024:UsePropertiesWhereAppropriate&quot;</span>)]</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keywordtype">int</span> NumDocs();</div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div>
<div class="line"><a name="l00709"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#ac7694e685dde51863b8974da924fa439"> 709</a></span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keywordtype">int</span> MaxDoc { <span class="keyword">get</span>; }</div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">int</span> NumDeletedDocs</div>
<div class="line"><a name="l00713"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a8ca390814a8df63b33d2221348b61552"> 713</a></span>&#160; {</div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> MaxDoc - NumDocs(); }</div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; }</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;</div>
<div class="line"><a name="l00729"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#ae5a8698ada40868908ea27f502337ee2"> 729</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_documents_1_1_document.html" title="Documents are the unit of indexing and search.">Document</a> <a class="code" href="_more_like_this_8cs.html#a2ad6aef8641c7b7a6cf9277f7d54b2cd">Document</a>(<span class="keywordtype">int</span> n)</div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; {</div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_more_like_this_8cs.html#a2ad6aef8641c7b7a6cf9277f7d54b2cd">Document</a>(n, null);</div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; }</div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;</div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keyword">public</span> <a class="code" href="class_lucene_1_1_net_1_1_documents_1_1_document.html" title="Documents are the unit of indexing and search.">Document</a> <span class="keyword">this</span>[<span class="keywordtype">int</span> doc]</div>
<div class="line"><a name="l00748"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#aa614c1d7097682aed364038af8a71b65"> 748</a></span>&#160; {</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> <a class="code" href="_more_like_this_8cs.html#a2ad6aef8641c7b7a6cf9277f7d54b2cd">Document</a>(doc); }</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; }</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; </div>
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="comment">// TODO (1.5): When we convert to JDK 1.5 make this Set&lt;String&gt;</span></div>
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <a class="code" href="class_lucene_1_1_net_1_1_documents_1_1_document.html" title="Documents are the unit of indexing and search.">Document</a> <a class="code" href="_more_like_this_8cs.html#a2ad6aef8641c7b7a6cf9277f7d54b2cd">Document</a>(<span class="keywordtype">int</span> n, <a class="code" href="interface_lucene_1_1_net_1_1_documents_1_1_field_selector.html" title="Similar to a java.io.FileFilter, the FieldSelector allows one to make decisions about what Fields get...">FieldSelector</a> fieldSelector);</div>
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; </div>
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keywordtype">bool</span> IsDeleted(<span class="keywordtype">int</span> n);</div>
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;</div>
<div class="line"><a name="l00795"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#ae5873f4e3a1253dd2cad0849eb74d9e0"> 795</a></span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keywordtype">bool</span> HasDeletions { <span class="keyword">get</span>; }</div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;</div>
<div class="line"><a name="l00798"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a951d3ff3357bfe9839aff739f79a064e"> 798</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> HasNorms(System.String field)</div>
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; {</div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="comment">// backward compatible implementation.</span></div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="comment">// SegmentReader has an efficient implementation.</span></div>
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">return</span> Norms(field) != null;</div>
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; }</div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div>
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> byte[] Norms(System.String field);</div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; </div>
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keywordtype">void</span> Norms(System.String field, byte[] bytes, <span class="keywordtype">int</span> offset);</div>
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; </div>
<div class="line"><a name="l00842"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a8258426814ce3796c5000a09c00f8ea0"> 842</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNorm(<span class="keywordtype">int</span> doc, String field, byte value)</div>
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; {</div>
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; {</div>
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; AcquireWriteLock();</div>
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; hasChanges = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; DoSetNorm(doc, field, value);</div>
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; }</div>
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; }</div>
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; </div>
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">abstract</span> <span class="keywordtype">void</span> DoSetNorm(<span class="keywordtype">int</span> doc, System.String field, byte value_Renamed);</div>
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; </div>
<div class="line"><a name="l00873"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a430b03fb03354132c29ee8d6081adf54"> 873</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNorm(<span class="keywordtype">int</span> doc, System.String field, <span class="keywordtype">float</span> value)</div>
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; {</div>
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; SetNorm(doc, field, <a class="code" href="_documents_writer_8cs.html#a5431a3a4edd067eec50ca39b5ea99c31">Similarity</a>.EncodeNorm(value));</div>
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; }</div>
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; </div>
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_term_enum.html" title="Abstract class for enumerating terms. Term enumerations are always ordered by Term.compareTo(). Each term in the enumeration is greater than all that precede it. ">TermEnum</a> Terms();</div>
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; </div>
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_term_enum.html" title="Abstract class for enumerating terms. Term enumerations are always ordered by Term.compareTo(). Each term in the enumeration is greater than all that precede it. ">TermEnum</a> Terms(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_term.html" title="A Term represents a word from text. This is the unit of search. It is composed of two elements...">Term</a> t);</div>
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;</div>
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keywordtype">int</span> DocFreq(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_term.html" title="A Term represents a word from text. This is the unit of search. It is composed of two elements...">Term</a> t);</div>
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; </div>
<div class="line"><a name="l00919"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#acbbce30c73e871a7cf5c151ee0c775b9"> 919</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_docs.html" title="TermDocs provides an interface for enumerating &lt;document, frequency&gt; pairs for a term. The document portion names each document containing the term. Documents are indicated by number. The frequency portion gives the number of times the term occurred in each document. The pairs are ordered by document number. ">TermDocs</a> <a class="code" href="_field_cache_impl_8cs.html#a058de2d1c801e53325f35357f213391f">TermDocs</a>(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_term.html" title="A Term represents a word from text. This is the unit of search. It is composed of two elements...">Term</a> term)</div>
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; {</div>
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_docs.html" title="TermDocs provides an interface for enumerating &lt;document, frequency&gt; pairs for a term. The document portion names each document containing the term. Documents are indicated by number. The frequency portion gives the number of times the term occurred in each document. The pairs are ordered by document number. ">TermDocs</a> termDocs = <a class="code" href="_field_cache_impl_8cs.html#a058de2d1c801e53325f35357f213391f">TermDocs</a>();</div>
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; termDocs.<a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_docs.html#a63eba164c41e26450d60753cd548cbcb" title="Sets this to the data for a term. The enumeration is reset to the start of the data for this term...">Seek</a>(term);</div>
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keywordflow">return</span> termDocs;</div>
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; }</div>
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;</div>
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_docs.html" title="TermDocs provides an interface for enumerating &lt;document, frequency&gt; pairs for a term. The document portion names each document containing the term. Documents are indicated by number. The frequency portion gives the number of times the term occurred in each document. The pairs are ordered by document number. ">TermDocs</a> <a class="code" href="_field_cache_impl_8cs.html#a058de2d1c801e53325f35357f213391f">TermDocs</a>();</div>
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; </div>
<div class="line"><a name="l00948"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a37d6736775ea229e6d58a87fddb8f4cb"> 948</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_positions.html" title="TermPositions provides an interface for enumerating the &lt;document, frequency, &lt;position&gt;* &gt; tuples fo...">TermPositions</a> <a class="code" href="core_2_analysis_2_token_8cs.html#a17a77b770c87cb0e7153982c4171bfcc">TermPositions</a>(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_term.html" title="A Term represents a word from text. This is the unit of search. It is composed of two elements...">Term</a> term)</div>
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; {</div>
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_positions.html" title="TermPositions provides an interface for enumerating the &lt;document, frequency, &lt;position&gt;* &gt; tuples fo...">TermPositions</a> termPositions = <a class="code" href="core_2_analysis_2_token_8cs.html#a17a77b770c87cb0e7153982c4171bfcc">TermPositions</a>();</div>
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; termPositions.<a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_docs.html#a63eba164c41e26450d60753cd548cbcb" title="Sets this to the data for a term. The enumeration is reset to the start of the data for this term...">Seek</a>(term);</div>
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keywordflow">return</span> termPositions;</div>
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; }</div>
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;</div>
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_positions.html" title="TermPositions provides an interface for enumerating the &lt;document, frequency, &lt;position&gt;* &gt; tuples fo...">TermPositions</a> <a class="code" href="core_2_analysis_2_token_8cs.html#a17a77b770c87cb0e7153982c4171bfcc">TermPositions</a>();</div>
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; </div>
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; </div>
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; </div>
<div class="line"><a name="l00978"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a3b7fd13e4df23385d13d129a361e632e"> 978</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> DeleteDocument(<span class="keywordtype">int</span> docNum)</div>
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; {</div>
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; {</div>
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; AcquireWriteLock();</div>
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; hasChanges = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; DoDelete(docNum);</div>
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; }</div>
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; }</div>
<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; </div>
<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; </div>
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">abstract</span> <span class="keywordtype">void</span> DoDelete(<span class="keywordtype">int</span> docNum);</div>
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; </div>
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; </div>
<div class="line"><a name="l01014"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#ab6cb087e83a3831cf5817fb2c954433e"> 1014</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">int</span> DeleteDocuments(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_term.html" title="A Term represents a word from text. This is the unit of search. It is composed of two elements...">Term</a> term)</div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; {</div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_docs.html" title="TermDocs provides an interface for enumerating &lt;document, frequency&gt; pairs for a term. The document portion names each document containing the term. Documents are indicated by number. The frequency portion gives the number of times the term occurred in each document. The pairs are ordered by document number. ">TermDocs</a> docs = <a class="code" href="_field_cache_impl_8cs.html#a058de2d1c801e53325f35357f213391f">TermDocs</a>(term);</div>
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; <span class="keywordflow">if</span> (docs == null)</div>
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keywordtype">int</span> n = 0;</div>
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; {</div>
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <span class="keywordflow">while</span> (docs.<a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_docs.html#a5a07b58ff92edf95aff4fbc264eb12e7" title="Moves to the next pair in the enumeration. Returns true iff there is such a next pair in the enumerat...">Next</a>())</div>
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; {</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; DeleteDocument(docs.<a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_docs.html#af4d11271571bff528c0639eb69cd8b4d" title="Returns the current document number. This is invalid until Next() is called for the first time...">Doc</a>);</div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; n++;</div>
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; }</div>
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; }</div>
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="keywordflow">finally</span></div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; {</div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; docs.<a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_docs.html#a9cc49d963030dda58f218ca274430dbb" title="Frees associated resources. ">Close</a>();</div>
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; }</div>
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">return</span> n;</div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; }</div>
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; </div>
<div class="line"><a name="l01047"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#aa45508588151dc9292027f8a88a5abb4"> 1047</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> UndeleteAll()</div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; {</div>
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; {</div>
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; AcquireWriteLock();</div>
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; hasChanges = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; DoUndeleteAll();</div>
<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; }</div>
<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; }</div>
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; </div>
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">abstract</span> <span class="keywordtype">void</span> DoUndeleteAll();</div>
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; </div>
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> AcquireWriteLock()</div>
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; {</div>
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; {</div>
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; <span class="comment">/* NOOP */</span></div>
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; }</div>
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; }</div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; </div>
<div class="line"><a name="l01075"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a862590efe934e6950d00a17f01fcb37f"> 1075</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">void</span> Flush()</div>
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; {</div>
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; {</div>
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; Commit();</div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; }</div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; }</div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; </div>
<div class="line"><a name="l01089"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#ae901a0307a030ada9552b6809c675dac"> 1089</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">void</span> Flush(IDictionary&lt;string, string&gt; commitUserData)</div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; {</div>
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; {</div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; EnsureOpen();</div>
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; Commit(commitUserData);</div>
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; }</div>
<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; }</div>
<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; </div>
<div class="line"><a name="l01106"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a8955a08bb1c30bbd1630945ee94556bf"> 1106</a></span>&#160; <span class="keyword">public</span> <span class="comment">/*protected internal*/</span> <span class="keywordtype">void</span> Commit()</div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; {</div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; {</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; Commit(null);</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; }</div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; }</div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; </div>
<div class="line"><a name="l01122"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a57e8bdf94bb134f336f53899d71c51a0"> 1122</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">void</span> Commit(IDictionary&lt;string, string&gt; commitUserData)</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; {</div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; {</div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="keywordflow">if</span> (hasChanges)</div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; {</div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; DoCommit(commitUserData);</div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; }</div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; hasChanges = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; }</div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; }</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; </div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">abstract</span> <span class="keywordtype">void</span> DoCommit(IDictionary&lt;string, string&gt; commitUserData);</div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;</div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; [Obsolete(<span class="stringliteral">&quot;Use Dispose() instead&quot;</span>)]</div>
<div class="line"><a name="l01138"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a1e6264ef01957145748af40d689eaf4d"> 1138</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">void</span> Close()</div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; {</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; Dispose();</div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; }</div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;</div>
<div class="line"><a name="l01148"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a866d1055e05a4dc6dd65bc517b46b7f0"> 1148</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">void</span> Dispose()</div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; {</div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; Dispose(<span class="keyword">true</span>);</div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; }</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;</div>
<div class="line"><a name="l01153"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a9ae0d97574a185f4cbb7fffcea8942d0"> 1153</a></span>&#160; <span class="keyword">protected</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> Dispose(<span class="keywordtype">bool</span> disposing)</div>
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; {</div>
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; <span class="keywordflow">if</span> (disposing)</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; {</div>
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; lock (<span class="keyword">this</span>)</div>
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; {</div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <span class="keywordflow">if</span> (!closed)</div>
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; {</div>
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; DecRef();</div>
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; closed = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; }</div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; }</div>
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; }</div>
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; }</div>
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; </div>
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> <span class="keyword">abstract</span> <span class="keywordtype">void</span> DoClose();</div>
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; </div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; </div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> ICollection&lt;string&gt; GetFieldNames(<a class="code" href="_segment_merger_8cs.html#a55267fd2a5afc41fc5c0adfa315f3694">FieldOption</a> fldOption);</div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;</div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_commit.html" title="Expert: represents a single commit into an index as seen by the IndexDeletionPolicy or IndexReader...">IndexCommit</a> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_commit.html" title="Expert: represents a single commit into an index as seen by the IndexDeletionPolicy or IndexReader...">IndexCommit</a></div>
<div class="line"><a name="l01192"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#aadd790323f856361d838541f9bea9dc3"> 1192</a></span>&#160; {</div>
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">throw</span> <span class="keyword">new</span> NotSupportedException(<span class="stringliteral">&quot;This reader does not support this method.&quot;</span>); }</div>
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; }</div>
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;</div>
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; [STAThread]</div>
<div class="line"><a name="l01204"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#aea84e847fcc80fa30ad48d3a9a21cb62"> 1204</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> <span class="keywordtype">void</span> Main(String[] args)</div>
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; {</div>
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; System.String filename = null;</div>
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <span class="keywordtype">bool</span> extract = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; </div>
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; <span class="keywordflow">foreach</span> (<span class="keywordtype">string</span> t <span class="keywordflow">in</span> args)</div>
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; {</div>
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; <span class="keywordflow">if</span> (t.Equals(<span class="stringliteral">&quot;-extract&quot;</span>))</div>
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; {</div>
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; extract = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; }</div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (filename == null)</div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; {</div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; filename = t;</div>
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; }</div>
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; }</div>
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;</div>
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keywordflow">if</span> (filename == null)</div>
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; {</div>
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; System.Console.Out.WriteLine(<span class="stringliteral">&quot;Usage: Lucene.Net.Index.IndexReader [-extract] &lt;cfsfile&gt;&quot;</span>);</div>
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; return ;</div>
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; }</div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; </div>
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_store_1_1_directory.html" title="A Directory is a flat list of files. Files may be written once, when they are created. Once a file is created it may only be opened for read, or deleted. Random access is permitted both when reading and writing.">Directory</a> dir = null;</div>
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_compound_file_reader.html" title="Class for accessing a compound stream. This class implements a directory, but is limited to only read...">CompoundFileReader</a> cfr = null;</div>
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; </div>
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; {</div>
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; var file = <span class="keyword">new</span> System.IO.FileInfo(filename);</div>
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; System.String dirname = <span class="keyword">new</span> System.IO.FileInfo(file.FullName).DirectoryName;</div>
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; filename = file.<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_compound_file_reader.html#a90d131547c3e1a78b61b2ed6b1f9a09f">Name</a>;</div>
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; dir = <a class="code" href="class_lucene_1_1_net_1_1_store_1_1_f_s_directory.html" title=" Base class for Directory implementations that store index files in the file system. There are currently three core subclasses:">FSDirectory</a>.<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_f_s_directory.html#a33ea2927779ca535c4cb90ea0dc76cfa" title="Creates an FSDirectory instance, trying to pick the best implementation given the current environment...">Open</a>(<span class="keyword">new</span> System.IO.DirectoryInfo(dirname));</div>
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; cfr = <span class="keyword">new</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_compound_file_reader.html" title="Class for accessing a compound stream. This class implements a directory, but is limited to only read...">CompoundFileReader</a>(dir, filename);</div>
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; </div>
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; System.String[] files = cfr.<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_compound_file_reader.html#a7af1e0f347a4f77510bd3232b8d4250c" title="Returns an array of strings, one for each file in the directory. ">ListAll</a>();</div>
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; System.Array.Sort(files); <span class="comment">// sort the array of filename so that the output is more readable</span></div>
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; </div>
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; <span class="keywordflow">foreach</span> (<span class="keywordtype">string</span> t <span class="keywordflow">in</span> files)</div>
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; {</div>
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; <span class="keywordtype">long</span> len = cfr.<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_compound_file_reader.html#ae81838e5993de725b81781847ca74264" title="Returns the length of a file in the directory.">FileLength</a>(t);</div>
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; </div>
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; <span class="keywordflow">if</span> (extract)</div>
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; {</div>
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; System.Console.Out.WriteLine(<span class="stringliteral">&quot;extract &quot;</span> + t + <span class="stringliteral">&quot; with &quot;</span> + len + <span class="stringliteral">&quot; bytes to local directory...&quot;</span>);</div>
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; <a class="code" href="class_lucene_1_1_net_1_1_store_1_1_index_input.html" title="Abstract base class for input from a file in a Directory. A random-access input stream. Used for all Lucene index input operations. ">IndexInput</a> ii = cfr.<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_compound_file_reader.html#a250031ba5340d2773563581c5272de99">OpenInput</a>(t);</div>
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; </div>
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; var f = <span class="keyword">new</span> System.IO.FileStream(t, System.IO.FileMode.Create);</div>
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; </div>
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; <span class="comment">// read and write with a small buffer, which is more effectiv than reading byte by byte</span></div>
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; var buffer = <span class="keyword">new</span> byte[1024];</div>
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; <span class="keywordtype">int</span> chunk = buffer.<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_index_input.html#a43cf88393d46a09ee267e0d709631258" title="The number of bytes in the file. ">Length</a>;</div>
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; <span class="keywordflow">while</span> (len &gt; 0)</div>
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; {</div>
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; var bufLen = (int) System.Math.Min(chunk, len);</div>
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; ii.<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_index_input.html#a428913bea51c264523f8c6cecba321e3" title="Reads a specified number of bytes into an array at the specified offset.">ReadBytes</a>(buffer, 0, bufLen);</div>
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; f.Write(buffer, 0, bufLen);</div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; len -= bufLen;</div>
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; }</div>
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; </div>
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; f.Close();</div>
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; ii.<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_index_input.html#a574f688ef9a010b1d8d1ba8c37926ce7">Close</a>();</div>
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; }</div>
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; System.Console.Out.WriteLine(t + <span class="stringliteral">&quot;: &quot;</span> + len + <span class="stringliteral">&quot; bytes&quot;</span>);</div>
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; }</div>
<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; }</div>
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; <span class="keywordflow">catch</span> (System.IO.IOException ioe)</div>
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; {</div>
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; System.Console.Error.WriteLine(ioe.StackTrace);</div>
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; }</div>
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; <span class="keywordflow">finally</span></div>
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; {</div>
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; {</div>
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; <span class="keywordflow">if</span> (dir != null)</div>
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; dir.<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_directory.html#ab6db8d63d7d08a6486db6d8d0fae3efb">Close</a>();</div>
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; <span class="keywordflow">if</span> (cfr != null)</div>
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; cfr.Close();</div>
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; }</div>
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; <span class="keywordflow">catch</span> (System.IO.IOException ioe)</div>
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; {</div>
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; System.Console.Error.WriteLine(ioe.StackTrace);</div>
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; }</div>
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; }</div>
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; }</div>
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; </div>
<div class="line"><a name="l01303"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#aec373bf57cf74ef8ba81ac40455214e8"> 1303</a></span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> System.Collections.Generic.ICollection&lt;<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_commit.html" title="Expert: represents a single commit into an index as seen by the IndexDeletionPolicy or IndexReader...">IndexCommit</a>&gt; ListCommits(<a class="code" href="class_lucene_1_1_net_1_1_store_1_1_directory.html" title="A Directory is a flat list of files. Files may be written once, when they are created. Once a file is created it may only be opened for read, or deleted. Random access is permitted both when reading and writing.">Directory</a> dir)</div>
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; {</div>
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_directory_reader.html" title="An IndexReader which reads indexes with multiple segments.">DirectoryReader</a>.<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_directory_reader.html#a51d5efedaf6a14b8bba3c8d7be10523e">ListCommits</a>(dir);</div>
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; }</div>
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;</div>
<div class="line"><a name="l01324"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a80ce49bcb14cf6c51f87404115ab705c"> 1324</a></span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a>[] GetSequentialSubReaders()</div>
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; {</div>
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; <span class="keywordflow">return</span> null;</div>
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; }</div>
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;</div>
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">object</span> FieldCacheKey</div>
<div class="line"><a name="l01331"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a01f3ebc46e11eaae1a961a7abe4c1f3c"> 1331</a></span>&#160; {</div>
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> <span class="keyword">this</span>; }</div>
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; }</div>
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;</div>
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; <span class="comment">/* Expert. Warning: this returns null if the reader has</span></div>
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;<span class="comment"> * no deletions </span></div>
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;</div>
<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">object</span> DeletesCacheKey</div>
<div class="line"><a name="l01340"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#af6a1050e8d3ba2f77ea808eef934e7ed"> 1340</a></span>&#160; {</div>
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> <span class="keyword">this</span>; }</div>
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; }</div>
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;</div>
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">long</span> UniqueTermCount</div>
<div class="line"><a name="l01359"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a40b1733b493afbca6307b8132e195fbd"> 1359</a></span>&#160; {</div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">throw</span> <span class="keyword">new</span> System.NotSupportedException(<span class="stringliteral">&quot;this reader does not implement getUniqueTermCount()&quot;</span>); }</div>
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; }</div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;</div>
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; <span class="keyword">public</span> <span class="keyword">virtual</span> <span class="keywordtype">int</span> TermInfosIndexDivisor</div>
<div class="line"><a name="l01370"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#a72bb45cd17cc83e372e688508ebc9500"> 1370</a></span>&#160; {</div>
<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">throw</span> <span class="keyword">new</span> NotSupportedException(<span class="stringliteral">&quot;This reader does not support this method.&quot;</span>); }</div>
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; }</div>
<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; }</div>
<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 3 2013 02:12:45 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>