/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
namespace Lucene.Net.Search
{
/// Expert: Compares two ScoreDoc objects for sorting.
///
/// Created: Feb 3, 2004 9:00:16 AM
///
///
/// lucene 1.4
///
/// $Id: ScoreDocComparator.java 738219 2009-01-27 20:15:21Z mikemccand $
///
/// use {@link FieldComparator}
///
[Obsolete("use FieldComparator")]
public struct ScoreDocComparator_Fields{
/// Special comparator for sorting hits according to computed relevance (document score).
public readonly static ScoreDocComparator RELEVANCE;
/// Special comparator for sorting hits according to index order (document number).
public readonly static ScoreDocComparator INDEXORDER;
static ScoreDocComparator_Fields()
{
RELEVANCE = new AnonymousClassScoreDocComparator();
INDEXORDER = new AnonymousClassScoreDocComparator1();
}
}
class AnonymousClassScoreDocComparator : ScoreDocComparator
{
public virtual int Compare(ScoreDoc i, ScoreDoc j)
{
if (i.score > j.score)
return - 1;
if (i.score < j.score)
return 1;
return 0;
}
public virtual System.IComparable SortValue(ScoreDoc i)
{
return (float) i.score;
}
public virtual int SortType()
{
return SortField.SCORE;
}
}
class AnonymousClassScoreDocComparator1 : ScoreDocComparator
{
public virtual int Compare(ScoreDoc i, ScoreDoc j)
{
if (i.doc < j.doc)
return - 1;
if (i.doc > j.doc)
return 1;
return 0;
}
public virtual System.IComparable SortValue(ScoreDoc i)
{
return (System.Int32) i.doc;
}
public virtual int SortType()
{
return SortField.DOC;
}
}
public interface ScoreDocComparator
{
/// Compares two ScoreDoc objects and returns a result indicating their
/// sort order.
///
/// First ScoreDoc
///
/// Second ScoreDoc
///
/// a negative integer if i
should come before j
/// a positive integer if i
should come after j
/// 0
if they are equal
///
///
///
int Compare(ScoreDoc i, ScoreDoc j);
/// Returns the value used to sort the given document. The
/// object returned must implement the java.io.Serializable
/// interface. This is used by multisearchers to determine how
/// to collate results from their searchers.
///
///
///
/// Document
///
/// Serializable object
///
System.IComparable SortValue(ScoreDoc i);
/// Returns the type of sort. Should return SortField.SCORE
,
/// SortField.DOC
, SortField.STRING
,
/// SortField.INTEGER
, SortField.FLOAT
or
/// SortField.CUSTOM
. It is not valid to return
/// SortField.AUTO
.
/// This is used by multisearchers to determine how to collate results
/// from their searchers.
///
/// One of the constants in SortField.
///
///
///
int SortType();
}
}