List of usage examples for org.apache.lucene.queries.function.docvalues LongDocValues LongDocValues
public LongDocValues(ValueSource vs)
From source file:org.apache.solr.analytics.util.valuesource.DateFieldSource.java
License:Apache License
@Override public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException { final NumericDocValues arr = DocValues.getNumeric(readerContext.reader(), field); final Bits valid = DocValues.getDocsWithField(readerContext.reader(), field); return new LongDocValues(this) { @Override// w w w .j a va 2 s. c o m public long longVal(int doc) { return arr.get(doc); } @Override public boolean exists(int doc) { return valid.get(doc); } @Override public Object objectVal(int doc) { return exists(doc) ? longToObject(arr.get(doc)) : null; } @Override public String strVal(int doc) { return exists(doc) ? longToString(arr.get(doc)) : null; } @Override public ValueFiller getValueFiller() { return new ValueFiller() { private final MutableValueDate mval = new MutableValueDate(); @Override public MutableValue getValue() { return mval; } @Override public void fillValue(int doc) { mval.value = arr.get(doc); mval.exists = exists(doc); } }; } }; }
From source file:org.apache.solr.analytics.util.valuesource.MultiDateFunction.java
License:Apache License
@Override public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException { final FunctionValues[] valsArr = new FunctionValues[sources.length]; for (int i = 0; i < sources.length; i++) { valsArr[i] = sources[i].getValues(context, readerContext); }/* w w w. j av a 2 s.co m*/ return new LongDocValues(this) { @Override public long longVal(int doc) { return func(doc, valsArr); } @Override public boolean exists(int doc) { boolean exists = true; for (FunctionValues val : valsArr) { exists = exists & val.exists(doc); } return exists; } @Override public String toString(int doc) { StringBuilder sb = new StringBuilder(); sb.append(name()).append('('); boolean firstTime = true; for (FunctionValues vals : valsArr) { if (firstTime) { firstTime = false; } else { sb.append(','); } sb.append(vals.toString(doc)); } sb.append(')'); return sb.toString(); } @Override public ValueFiller getValueFiller() { return new ValueFiller() { private final MutableValueDate mval = new MutableValueDate(); @Override public MutableValue getValue() { return mval; } @Override public void fillValue(int doc) { mval.value = longVal(doc); mval.exists = exists(doc); } }; } }; }
From source file:org.apache.solr.schema.TrieLongField.java
License:Apache License
@Override protected ValueSource getSingleValueSource(SortedSetSelector.Type choice, SchemaField f) { return new SortedSetFieldSource(f.getName(), choice) { @Override//w w w .jav a2 s . c o m public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException { SortedSetFieldSource thisAsSortedSetFieldSource = this; // needed for nested anon class ref SortedSetDocValues sortedSet = DocValues.getSortedSet(readerContext.reader(), field); SortedDocValues view = SortedSetSelector.wrap(sortedSet, selector); return new LongDocValues(thisAsSortedSetFieldSource) { private int lastDocID; private boolean setDoc(int docID) throws IOException { if (docID < lastDocID) { throw new IllegalArgumentException( "docs out of order: lastDocID=" + lastDocID + " docID=" + docID); } if (docID > view.docID()) { lastDocID = docID; return docID == view.advance(docID); } else { return docID == view.docID(); } } @Override public long longVal(int doc) throws IOException { if (setDoc(doc)) { BytesRef bytes = view.binaryValue(); assert bytes.length > 0; return LegacyNumericUtils.prefixCodedToLong(bytes); } else { return 0L; } } @Override public boolean exists(int doc) throws IOException { return setDoc(doc); } @Override public ValueFiller getValueFiller() { return new ValueFiller() { private final MutableValueLong mval = new MutableValueLong(); @Override public MutableValue getValue() { return mval; } @Override public void fillValue(int doc) throws IOException { if (setDoc(doc)) { mval.exists = true; mval.value = LegacyNumericUtils.prefixCodedToLong(view.binaryValue()); } else { mval.exists = false; mval.value = 0L; } } }; } }; } }; }
From source file:org.apache.solr.search.ValueSourceParser.java
License:Apache License
@Override public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException { return new LongDocValues(this) { @Override/*from ww w . ja v a2s . c o m*/ public float floatVal(int doc) { return fv; } @Override public int intVal(int doc) { return (int) constant; } @Override public long longVal(int doc) { return constant; } @Override public double doubleVal(int doc) { return dv; } @Override public String toString(int doc) { return description(); } }; }