Example usage for org.apache.lucene.search DoubleValuesSource fromDoubleField

List of usage examples for org.apache.lucene.search DoubleValuesSource fromDoubleField

Introduction

In this page you can find the example usage for org.apache.lucene.search DoubleValuesSource fromDoubleField.

Prototype

public static DoubleValuesSource fromDoubleField(String field) 

Source Link

Document

Creates a DoubleValuesSource that wraps a double-valued field

Usage

From source file:org.apache.solr.legacy.BBoxValueSource.java

License:Apache License

@Override
public ShapeValues getValues(LeafReaderContext readerContext) throws IOException {

    final DoubleValues minX = DoubleValuesSource.fromDoubleField(strategy.field_minX).getValues(readerContext,
            null);//from   w w  w. jav  a2  s  .  c  o m
    final DoubleValues minY = DoubleValuesSource.fromDoubleField(strategy.field_minY).getValues(readerContext,
            null);
    final DoubleValues maxX = DoubleValuesSource.fromDoubleField(strategy.field_maxX).getValues(readerContext,
            null);
    final DoubleValues maxY = DoubleValuesSource.fromDoubleField(strategy.field_maxY).getValues(readerContext,
            null);

    //reused
    final Rectangle rect = strategy.getSpatialContext().makeRectangle(0, 0, 0, 0);

    return new ShapeValues() {

        @Override
        public boolean advanceExact(int doc) throws IOException {
            return minX.advanceExact(doc) && maxX.advanceExact(doc) && minY.advanceExact(doc)
                    && maxY.advanceExact(doc);
        }

        @Override
        public Shape value() throws IOException {
            rect.reset(minX.doubleValue(), maxX.doubleValue(), minY.doubleValue(), maxY.doubleValue());
            return rect;
        }

    };
}

From source file:org.apache.solr.legacy.DistanceValueSource.java

License:Apache License

/**
 * Returns the FunctionValues used by the function query.
 *//* w w w.j  a v  a  2s  . co  m*/
@Override
public DoubleValues getValues(LeafReaderContext readerContext, DoubleValues scores) throws IOException {

    final DoubleValues ptX = DoubleValuesSource.fromDoubleField(strategy.getFieldNameX())
            .getValues(readerContext, null);
    final DoubleValues ptY = DoubleValuesSource.fromDoubleField(strategy.getFieldNameY())
            .getValues(readerContext, null);
    final DistanceCalculator calculator = strategy.getSpatialContext().getDistCalc();

    return DoubleValues.withDefault(new DoubleValues() {

        @Override
        public double doubleValue() throws IOException {
            return calculator.distance(from, ptX.doubleValue(), ptY.doubleValue()) * multiplier;
        }

        @Override
        public boolean advanceExact(int doc) throws IOException {
            return ptX.advanceExact(doc) && ptY.advanceExact(doc);
        }
    }, nullValue);

}