List of usage examples for org.apache.lucene.document IntPoint decodeDimension
public static int decodeDimension(byte value[], int offset)
From source file:org.apache.solr.schema.IntPointField.java
License:Apache License
@Override public Object toObject(SchemaField sf, BytesRef term) { return IntPoint.decodeDimension(term.bytes, term.offset); }
From source file:org.apache.solr.schema.IntPointField.java
License:Apache License
@Override protected String indexedToReadable(BytesRef indexedForm) { return Integer.toString(IntPoint.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 . co m*/
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;
}
}