Example usage for org.apache.lucene.document LongPoint decodeDimension

List of usage examples for org.apache.lucene.document LongPoint decodeDimension

Introduction

In this page you can find the example usage for org.apache.lucene.document LongPoint decodeDimension.

Prototype

public static long decodeDimension(byte value[], int offset) 

Source Link

Document

Decode single long dimension

Usage

From source file:org.apache.solr.schema.DatePointField.java

License:Apache License

@Override
public Object toObject(SchemaField sf, BytesRef term) {
    return new Date(LongPoint.decodeDimension(term.bytes, term.offset));
}

From source file:org.apache.solr.schema.DatePointField.java

License:Apache License

@Override
protected String indexedToReadable(BytesRef indexedForm) {
    return Instant.ofEpochMilli(LongPoint.decodeDimension(indexedForm.bytes, indexedForm.offset)).toString();
}

From source file:org.apache.solr.schema.LongPointField.java

License:Apache License

@Override
public Object toObject(SchemaField sf, BytesRef term) {
    return LongPoint.decodeDimension(term.bytes, term.offset);
}

From source file:org.apache.solr.schema.LongPointField.java

License:Apache License

@Override
protected String indexedToReadable(BytesRef indexedForm) {
    return Long.toString(LongPoint.decodeDimension(indexedForm.bytes, indexedForm.offset));
}

From source file:org.elasticsearch.search.aggregations.bucket.composite.LongValuesSource.java

License:Apache License

@Override
SortedDocsProducer createSortedDocsProducerOrNull(IndexReader reader, Query query) {
    if (checkIfSortedDocsIsApplicable(reader, fieldType) == false
            || (query != null && query.getClass() != MatchAllDocsQuery.class &&
            // if the query is a range query over the same field
                    (query instanceof PointRangeQuery
                            && fieldType.name().equals((((PointRangeQuery) query).getField()))) == false)) {
        return null;
    }/*from ww w . j  a  v  a 2 s  . c om*/
    final byte[] lowerPoint;
    final byte[] upperPoint;
    if (query instanceof PointRangeQuery) {
        final PointRangeQuery rangeQuery = (PointRangeQuery) query;
        lowerPoint = rangeQuery.getLowerPoint();
        upperPoint = rangeQuery.getUpperPoint();
    } else {
        lowerPoint = null;
        upperPoint = null;
    }

    if (fieldType instanceof NumberFieldMapper.NumberFieldType) {
        NumberFieldMapper.NumberFieldType ft = (NumberFieldMapper.NumberFieldType) fieldType;
        final ToLongFunction<byte[]> toBucketFunction;

        switch (ft.typeName()) {
        case "long":
            toBucketFunction = (value) -> rounding.applyAsLong(LongPoint.decodeDimension(value, 0));
            break;

        case "int":
        case "short":
        case "byte":
            toBucketFunction = (value) -> rounding.applyAsLong(IntPoint.decodeDimension(value, 0));
            break;

        default:
            return null;
        }
        return new PointsSortedDocsProducer(fieldType.name(), toBucketFunction, lowerPoint, upperPoint);
    } else if (fieldType instanceof DateFieldMapper.DateFieldType) {
        final ToLongFunction<byte[]> toBucketFunction = (value) -> rounding
                .applyAsLong(LongPoint.decodeDimension(value, 0));
        return new PointsSortedDocsProducer(fieldType.name(), toBucketFunction, lowerPoint, upperPoint);
    } else {
        return null;
    }
}