HitCollector.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.Search
  18. {
  19. /// <summary>Lower-level search API.
  20. /// <br>HitCollectors are primarily meant to be used to implement queries,
  21. /// sorting and filtering.
  22. /// </summary>
  23. /// <seealso cref="Searcher.Search(Query,HitCollector)">
  24. /// </seealso>
  25. /// <version>  $Id: HitCollector.java 155607 2005-02-27 01:29:53Z otis $
  26. /// </version>
  27. public abstract class HitCollector
  28. {
  29. /// <summary>Called once for every non-zero scoring document, with the document number
  30. /// and its score.
  31. /// 
  32. /// <P>If, for example, an application wished to collect all of the hits for a
  33. /// query in a BitSet, then it might:<pre>
  34. /// Searcher searcher = new IndexSearcher(indexReader);
  35. /// final BitSet bits = new BitSet(indexReader.maxDoc());
  36. /// searcher.search(query, new HitCollector() {
  37. /// public void collect(int doc, float score) {
  38. /// bits.set(doc);
  39. /// }
  40. /// });
  41. /// </pre>
  42. /// 
  43. /// <p>Note: This is called in an inner search loop.  For good search
  44. /// performance, implementations of this method should not call
  45. /// {@link Searcher#Doc(int)} or
  46. /// {@link Lucene.Net.index.IndexReader#Document(int)} on every
  47. /// document number encountered.  Doing so can slow searches by an order
  48. /// of magnitude or more.
  49. /// <p>Note: The <code>score</code> passed to this method is a raw score.
  50. /// In other words, the score will not necessarily be a float whose value is
  51. /// between 0 and 1.
  52. /// </summary>
  53. public abstract void  Collect(int doc, float score);
  54. }
  55. }