Example usage for org.apache.lucene.queries.function FunctionValues toString

List of usage examples for org.apache.lucene.queries.function FunctionValues toString

Introduction

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

Prototype

public abstract String toString(int doc) throws IOException;

Source Link

Usage

From source file:org.apache.solr.analytics.util.valuesource.DualDoubleFunction.java

License:Apache License

@Override
public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException {
    final FunctionValues aVals = a.getValues(context, readerContext);
    final FunctionValues bVals = b.getValues(context, readerContext);
    return new DoubleDocValues(this) {
        @Override// w w w  .  j a v  a2s  .c  o m
        public double doubleVal(int doc) {
            return func(doc, aVals, bVals);
        }

        @Override
        public boolean exists(int doc) {
            return aVals.exists(doc) & bVals.exists(doc);
        }

        @Override
        public String toString(int doc) {
            return name() + '(' + aVals.toString(doc) + ',' + bVals.toString(doc) + ')';
        }
    };
}

From source file:org.apache.solr.analytics.util.valuesource.FilterFieldSource.java

License:Apache License

@Override
public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException {
    final FunctionValues vals = source.getValues(context, readerContext);
    return new FunctionValues() {

        @Override/*from  w ww .j  ava2  s.co  m*/
        public byte byteVal(int doc) {
            return vals.byteVal(doc);
        }

        @Override
        public short shortVal(int doc) {
            return vals.shortVal(doc);
        }

        @Override
        public float floatVal(int doc) {
            return vals.floatVal(doc);
        }

        @Override
        public int intVal(int doc) {
            return vals.intVal(doc);
        }

        @Override
        public long longVal(int doc) {
            return vals.longVal(doc);
        }

        @Override
        public double doubleVal(int doc) {
            return vals.doubleVal(doc);
        }

        @Override
        public String strVal(int doc) {
            return vals.strVal(doc);
        }

        @Override
        public Object objectVal(int doc) {
            return exists(doc) ? vals.objectVal(doc) : null;
        }

        @Override
        public boolean exists(int doc) {
            Object other = vals.objectVal(doc);
            return other != null && !missValue.equals(other);
        }

        @Override
        public String toString(int doc) {
            return NAME + '(' + vals.toString(doc) + ')';
        }

        @Override
        public ValueFiller getValueFiller() {
            return new ValueFiller() {
                private final ValueFiller delegateFiller = vals.getValueFiller();
                private final MutableValue mval = delegateFiller.getValue();

                @Override
                public MutableValue getValue() {
                    return mval;
                }

                @Override
                public void fillValue(int doc) {
                    delegateFiller.fillValue(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  ava2 s  .  c o 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.analytics.util.valuesource.MultiDoubleFunction.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);
    }//from w w  w .ja va  2  s  .  c  o  m

    return new DoubleDocValues(this) {
        @Override
        public double doubleVal(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();
        }
    };
}

From source file:org.apache.solr.analytics.util.valuesource.MultiStringFunction.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);
    }/*from w  ww . jav a  2 s  .c  om*/

    return new StrDocValues(this) {
        @Override
        public String strVal(int doc) {
            CharSequence cs = func(doc, valsArr);
            return cs != null ? cs.toString() : null;
        }

        @Override
        public boolean exists(int doc) {
            boolean exists = true;
            for (FunctionValues val : valsArr) {
                exists = exists & val.exists(doc);
            }
            return exists;
        }

        @Override
        public boolean bytesVal(int doc, BytesRefBuilder bytes) {
            bytes.clear();
            CharSequence cs = func(doc, valsArr);
            if (cs != null) {
                bytes.copyChars(func(doc, valsArr));
                return true;
            } else {
                return false;
            }
        }

        @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 MutableValueStr mval = new MutableValueStr();

                @Override
                public MutableValue getValue() {
                    return mval;
                }

                @Override
                public void fillValue(int doc) {
                    mval.exists = bytesVal(doc, mval.value);
                }
            };
        }
    };
}

From source file:org.apache.solr.analytics.util.valuesource.SingleDoubleFunction.java

License:Apache License

@Override
public FunctionValues getValues(Map context, LeafReaderContext readerContext) throws IOException {
    final FunctionValues vals = source.getValues(context, readerContext);
    return new DoubleDocValues(this) {
        @Override/* w  ww . j ava  2  s  . co  m*/
        public double doubleVal(int doc) {
            return func(doc, vals);
        }

        @Override
        public boolean exists(int doc) {
            return vals.exists(doc);
        }

        @Override
        public String toString(int doc) {
            return name() + '(' + vals.toString(doc) + ')';
        }
    };
}

From source file:org.apache.solr.search.function.distance.GeohashFunction.java

License:Apache License

@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
    final FunctionValues latDV = lat.getValues(context, readerContext);
    final FunctionValues lonDV = lon.getValues(context, readerContext);

    return new FunctionValues() {

        @Override/* ww  w  . j av  a 2  s.  com*/
        public String strVal(int doc) {
            return GeohashUtils.encodeLatLon(latDV.doubleVal(doc), lonDV.doubleVal(doc));
        }

        @Override
        public String toString(int doc) {
            StringBuilder sb = new StringBuilder();
            sb.append(name()).append('(');
            sb.append(latDV.toString(doc)).append(',').append(lonDV.toString(doc));
            sb.append(')');
            return sb.toString();
        }
    };
}

From source file:org.apache.solr.search.function.distance.GeohashHaversineFunction.java

License:Apache License

@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
    final FunctionValues gh1DV = geoHash1.getValues(context, readerContext);
    final FunctionValues gh2DV = geoHash2.getValues(context, readerContext);

    return new DoubleDocValues(this) {
        @Override//  ww w .j  av a  2  s  .c o  m
        public double doubleVal(int doc) {
            return distance(doc, gh1DV, gh2DV);
        }

        @Override
        public String toString(int doc) {
            StringBuilder sb = new StringBuilder();
            sb.append(name()).append('(');
            sb.append(gh1DV.toString(doc)).append(',').append(gh2DV.toString(doc));
            sb.append(')');
            return sb.toString();
        }
    };
}

From source file:org.apache.solr.search.function.distance.HaversineConstFunction.java

License:Apache License

@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
    final FunctionValues latVals = latSource.getValues(context, readerContext);
    final FunctionValues lonVals = lonSource.getValues(context, readerContext);
    final double latCenterRad = this.latCenter * DEGREES_TO_RADIANS;
    final double lonCenterRad = this.lonCenter * DEGREES_TO_RADIANS;
    final double latCenterRad_cos = this.latCenterRad_cos;

    return new DoubleDocValues(this) {
        @Override//from w w  w  . j a  v  a  2  s.  c  o m
        public double doubleVal(int doc) {
            double latRad = latVals.doubleVal(doc) * DEGREES_TO_RADIANS;
            double lonRad = lonVals.doubleVal(doc) * DEGREES_TO_RADIANS;
            double diffX = latCenterRad - latRad;
            double diffY = lonCenterRad - lonRad;
            double hsinX = Math.sin(diffX * 0.5);
            double hsinY = Math.sin(diffY * 0.5);
            double h = hsinX * hsinX + (latCenterRad_cos * Math.cos(latRad) * hsinY * hsinY);
            return (EARTH_MEAN_DIAMETER * Math.atan2(Math.sqrt(h), Math.sqrt(1 - h)));
        }

        @Override
        public String toString(int doc) {
            return name() + '(' + latVals.toString(doc) + ',' + lonVals.toString(doc) + ',' + latCenter + ','
                    + lonCenter + ')';
        }
    };
}

From source file:org.apache.solr.search.function.distance.HaversineFunction.java

License:Apache License

@Override
public FunctionValues getValues(Map context, AtomicReaderContext readerContext) throws IOException {
    final FunctionValues vals1 = p1.getValues(context, readerContext);

    final FunctionValues vals2 = p2.getValues(context, readerContext);
    return new DoubleDocValues(this) {
        @Override/*  w  w w .j  a v a2 s  .c o m*/
        public double doubleVal(int doc) {
            return distance(doc, vals1, vals2);
        }

        @Override
        public String toString(int doc) {
            StringBuilder sb = new StringBuilder();
            sb.append(name()).append('(');
            sb.append(vals1.toString(doc)).append(',').append(vals2.toString(doc));
            sb.append(')');
            return sb.toString();
        }
    };
}