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

搜索引擎

开发平台:

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. namespace Lucene.Net.Index
  18. {
  19. /// <summary>Abstract class for enumerating terms.
  20. /// <p>Term enumerations are always ordered by Term.compareTo().  Each term in
  21. /// the enumeration is greater than all that precede it.  
  22. /// </summary>
  23. public abstract class TermEnum
  24. {
  25. /// <summary>Increments the enumeration to the next element.  True if one exists.</summary>
  26. public abstract bool Next();
  27. /// <summary>Returns the current Term in the enumeration.</summary>
  28. public abstract Term Term();
  29. /// <summary>Returns the docFreq of the current Term in the enumeration.</summary>
  30. public abstract int DocFreq();
  31. /// <summary>Closes the enumeration to further activity, freeing resources. </summary>
  32. public abstract void  Close();
  33. // Term Vector support
  34. /// <summary>Skips terms to the first beyond the current whose value is
  35. /// greater or equal to <i>target</i>. <p>Returns true iff there is such
  36. /// an entry.  <p>Behaves as if written: <pre>
  37. /// public boolean skipTo(Term target) {
  38. /// do {
  39. /// if (!next())
  40. /// return false;
  41. /// } while (target > term());
  42. /// return true;
  43. /// }
  44. /// </pre>
  45. /// Some implementations are considerably more efficient than that.
  46. /// </summary>
  47. public virtual bool SkipTo(Term target)
  48. {
  49. do 
  50. {
  51. if (!Next())
  52. return false;
  53. }
  54. while (target.CompareTo(Term()) > 0);
  55. return true;
  56. }
  57. }
  58. }