FilterIndexReader.cs
上传用户:zhangkuixh
上传日期:2013-09-30
资源大小:5473k
文件大小:6k
源码类别:

搜索引擎

开发平台:

C#

  1. /*
  2.  * Copyright 2004 The Apache Software Foundation
  3.  * 
  4.  * Licensed under the Apache License, Version 2.0 (the "License");
  5.  * you may not use this file except in compliance with the License.
  6.  * You may obtain a copy of the License at
  7.  * 
  8.  * http://www.apache.org/licenses/LICENSE-2.0
  9.  * 
  10.  * Unless required by applicable law or agreed to in writing, software
  11.  * distributed under the License is distributed on an "AS IS" BASIS,
  12.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13.  * See the License for the specific language governing permissions and
  14.  * limitations under the License.
  15.  */
  16. using System;
  17. using Document = Lucene.Net.Documents.Document;
  18. using Field = Lucene.Net.Documents.Field;
  19. namespace Lucene.Net.Index
  20. {
  21. /// <summary>A <code>FilterIndexReader</code> contains another IndexReader, which it
  22. /// uses as its basic source of data, possibly transforming the data along the
  23. /// way or providing additional functionality. The class
  24. /// <code>FilterIndexReader</code> itself simply implements all abstract methods
  25. /// of <code>IndexReader</code> with versions that pass all requests to the
  26. /// contained index reader. Subclasses of <code>FilterIndexReader</code> may
  27. /// further override some of these methods and may also provide additional
  28. /// methods and fields.
  29. /// </summary>
  30. public class FilterIndexReader : IndexReader
  31. {
  32. /// <summary>Base class for filtering {@link TermDocs} implementations. </summary>
  33. public class FilterTermDocs : TermDocs
  34. {
  35. protected internal TermDocs in_Renamed;
  36. public FilterTermDocs(TermDocs in_Renamed)
  37. {
  38. this.in_Renamed = in_Renamed;
  39. }
  40. public virtual void  Seek(Term term)
  41. {
  42. in_Renamed.Seek(term);
  43. }
  44. public virtual void  Seek(TermEnum termEnum)
  45. {
  46. in_Renamed.Seek(termEnum);
  47. }
  48. public virtual int Doc()
  49. {
  50. return in_Renamed.Doc();
  51. }
  52. public virtual int Freq()
  53. {
  54. return in_Renamed.Freq();
  55. }
  56. public virtual bool Next()
  57. {
  58. return in_Renamed.Next();
  59. }
  60. public virtual int Read(int[] docs, int[] freqs)
  61. {
  62. return in_Renamed.Read(docs, freqs);
  63. }
  64. public virtual bool SkipTo(int i)
  65. {
  66. return in_Renamed.SkipTo(i);
  67. }
  68. public virtual void  Close()
  69. {
  70. in_Renamed.Close();
  71. }
  72. }
  73. /// <summary>Base class for filtering {@link TermPositions} implementations. </summary>
  74. public class FilterTermPositions : FilterTermDocs, TermPositions
  75. {
  76. public FilterTermPositions(TermPositions in_Renamed) : base(in_Renamed)
  77. {
  78. }
  79. public virtual int NextPosition()
  80. {
  81. return ((TermPositions) this.in_Renamed).NextPosition();
  82. }
  83. }
  84. /// <summary>Base class for filtering {@link TermEnum} implementations. </summary>
  85. public class FilterTermEnum : TermEnum
  86. {
  87. protected internal TermEnum in_Renamed;
  88. public FilterTermEnum(TermEnum in_Renamed)
  89. {
  90. this.in_Renamed = in_Renamed;
  91. }
  92. public override bool Next()
  93. {
  94. return in_Renamed.Next();
  95. }
  96. public override Term Term()
  97. {
  98. return in_Renamed.Term();
  99. }
  100. public override int DocFreq()
  101. {
  102. return in_Renamed.DocFreq();
  103. }
  104. public override void  Close()
  105. {
  106. in_Renamed.Close();
  107. }
  108. }
  109. protected internal IndexReader in_Renamed;
  110. /// <summary> <p>Construct a FilterIndexReader based on the specified base reader.
  111. /// Directory locking for delete, undeleteAll, and setNorm operations is
  112. /// left to the base reader.</p>
  113. /// <p>Note that base reader is closed if this FilterIndexReader is closed.</p>
  114. /// </summary>
  115. /// <param name="in">specified base reader.
  116. /// </param>
  117. public FilterIndexReader(IndexReader in_Renamed):base(in_Renamed.Directory())
  118. {
  119. this.in_Renamed = in_Renamed;
  120. }
  121. public override TermFreqVector[] GetTermFreqVectors(int docNumber)
  122. {
  123. return in_Renamed.GetTermFreqVectors(docNumber);
  124. }
  125. public override TermFreqVector GetTermFreqVector(int docNumber, System.String field)
  126. {
  127. return in_Renamed.GetTermFreqVector(docNumber, field);
  128. }
  129. public override int NumDocs()
  130. {
  131. return in_Renamed.NumDocs();
  132. }
  133. public override int MaxDoc()
  134. {
  135. return in_Renamed.MaxDoc();
  136. }
  137. public override Document Document(int n)
  138. {
  139. return in_Renamed.Document(n);
  140. }
  141. public override bool IsDeleted(int n)
  142. {
  143. return in_Renamed.IsDeleted(n);
  144. }
  145. public override bool HasDeletions()
  146. {
  147. return in_Renamed.HasDeletions();
  148. }
  149. protected internal override void  DoUndeleteAll()
  150. {
  151. in_Renamed.UndeleteAll();
  152. }
  153. public override bool HasNorms(System.String field)
  154. {
  155. return in_Renamed.HasNorms(field);
  156. }
  157. public override byte[] Norms(System.String f)
  158. {
  159. return in_Renamed.Norms(f);
  160. }
  161. public override void  Norms(System.String f, byte[] bytes, int offset)
  162. {
  163. in_Renamed.Norms(f, bytes, offset);
  164. }
  165. protected internal override void  DoSetNorm(int d, System.String f, byte b)
  166. {
  167. in_Renamed.SetNorm(d, f, b);
  168. }
  169. public override TermEnum Terms()
  170. {
  171. return in_Renamed.Terms();
  172. }
  173. public override TermEnum Terms(Term t)
  174. {
  175. return in_Renamed.Terms(t);
  176. }
  177. public override int DocFreq(Term t)
  178. {
  179. return in_Renamed.DocFreq(t);
  180. }
  181. public override TermDocs TermDocs()
  182. {
  183. return in_Renamed.TermDocs();
  184. }
  185. public override TermPositions TermPositions()
  186. {
  187. return in_Renamed.TermPositions();
  188. }
  189. protected internal override void  DoDelete(int n)
  190. {
  191. in_Renamed.Delete(n);
  192. }
  193. protected internal override void  DoCommit()
  194. {
  195. in_Renamed.Commit();
  196. }
  197. protected internal override void  DoClose()
  198. {
  199. in_Renamed.Close();
  200. }
  201. public override System.Collections.ICollection GetFieldNames()
  202. {
  203. return in_Renamed.GetFieldNames();
  204. }
  205. public override System.Collections.ICollection GetFieldNames(bool indexed)
  206. {
  207. return in_Renamed.GetFieldNames(indexed);
  208. }
  209. public override System.Collections.ICollection GetIndexedFieldNames(Field.TermVector tvSpec)
  210. {
  211. return in_Renamed.GetIndexedFieldNames(tvSpec);
  212. }
  213. public override System.Collections.ICollection GetFieldNames(IndexReader.FieldOption fieldNames)
  214. {
  215. return in_Renamed.GetFieldNames(fieldNames);
  216. }
  217. }
  218. }