Example usage for org.apache.lucene.queries.function.docvalues LongDocValues LongDocValues

List of usage examples for org.apache.lucene.queries.function.docvalues LongDocValues LongDocValues

Introduction

In this page you can find the example usage for org.apache.lucene.queries.function.docvalues LongDocValues LongDocValues.

Prototype

public LongDocValues(ValueSource vs) 

Source Link

Usage

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();
        }
    };
}