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

搜索引擎

开发平台:

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 PriorityQueue = Lucene.Net.Util.PriorityQueue;
  18. namespace Lucene.Net.Index
  19. {
  20. sealed class SegmentMergeQueue : PriorityQueue
  21. {
  22. internal SegmentMergeQueue(int size)
  23. {
  24. Initialize(size);
  25. }
  26. public override bool LessThan(System.Object a, System.Object b)
  27. {
  28. SegmentMergeInfo stiA = (SegmentMergeInfo) a;
  29. SegmentMergeInfo stiB = (SegmentMergeInfo) b;
  30. int comparison = stiA.term.CompareTo(stiB.term);
  31. if (comparison == 0)
  32. return stiA.base_Renamed < stiB.base_Renamed;
  33. else
  34. return comparison < 0;
  35. }
  36. internal void  Close()
  37. {
  38. while (Top() != null)
  39. ((SegmentMergeInfo) Pop()).Close();
  40. }
  41. }
  42. }