static SortedSetDocValues replaceMissing(final SortedSetDocValues values, final BytesRef missing) throws IOException { final long missingOrd = values.lookupTerm(missing); if (missingOrd >= 0) { // The value already exists return replaceMissingOrd(values, missingOrd); } else { final long insertedOrd = -1 - missingOrd; return insertOrd(values, insertedOrd, missing); } }
@Override public SortedBinaryDocValues bytesValues(LeafReaderContext context) throws IOException { SortedBinaryDocValues values = valuesSource.bytesValues(context); return replaceMissing(values, missing); } };
@Override public LongUnaryOperator globalOrdinalsMapping(LeafReaderContext context) throws IOException { return getGlobalMapping(valuesSource.ordinalsValues(context), valuesSource.globalOrdinalsValues(context), valuesSource.globalOrdinalsMapping(context), missing); } };
@Override public MultiGeoPointValues geoPointValues(LeafReaderContext context) { final MultiGeoPointValues values = valuesSource.geoPointValues(context); return replaceMissing(values, missing); } };
static RandomAccessOrds replaceMissing(final RandomAccessOrds values, final BytesRef missing) { final long missingOrd = values.lookupTerm(missing); if (missingOrd >= 0) { // The value already exists return replaceMissingOrd(values, missingOrd); } else { final long insertedOrd = -1 - missingOrd; return insertOrd(values, insertedOrd, missing); } }
@Override public LongUnaryOperator globalOrdinalsMapping(LeafReaderContext context) throws IOException { return getGlobalMapping(valuesSource.ordinalsValues(context), valuesSource.globalOrdinalsValues(context), valuesSource.globalOrdinalsMapping(context), missing); } };
@Override public SortedNumericDoubleValues doubleValues(LeafReaderContext context) throws IOException { final SortedNumericDoubleValues values = valuesSource.doubleValues(context); return replaceMissing(values, missing.doubleValue()); } };
static SortedSetDocValues replaceMissing(final SortedSetDocValues values, final BytesRef missing) throws IOException { final long missingOrd = values.lookupTerm(missing); if (missingOrd >= 0) { // The value already exists return replaceMissingOrd(values, missingOrd); } else { final long insertedOrd = -1 - missingOrd; return insertOrd(values, insertedOrd, missing); } }
@Override public LongUnaryOperator globalOrdinalsMapping(LeafReaderContext context) throws IOException { return getGlobalMapping(valuesSource.ordinalsValues(context), valuesSource.globalOrdinalsValues(context), valuesSource.globalOrdinalsMapping(context), missing); } };
@Override public SortedSetDocValues ordinalsValues(LeafReaderContext context) throws IOException { SortedSetDocValues values = valuesSource.ordinalsValues(context); return replaceMissing(values, missing); }
static SortedSetDocValues replaceMissing(final SortedSetDocValues values, final BytesRef missing) throws IOException { final long missingOrd = values.lookupTerm(missing); if (missingOrd >= 0) { // The value already exists return replaceMissingOrd(values, missingOrd); } else { final long insertedOrd = -1 - missingOrd; return insertOrd(values, insertedOrd, missing); } }
@Override public SortedNumericDocValues longValues(LeafReaderContext context) throws IOException { final SortedNumericDocValues values = valuesSource.longValues(context); return replaceMissing(values, missing.longValue()); }
static RandomAccessOrds replaceMissing(final RandomAccessOrds values, final BytesRef missing) { final long missingOrd = values.lookupTerm(missing); if (missingOrd >= 0) { // The value already exists return replaceMissingOrd(values, missingOrd); } else { final long insertedOrd = -1 - missingOrd; return insertOrd(values, insertedOrd, missing); } }
@Override public SortedBinaryDocValues bytesValues(LeafReaderContext context) throws IOException { SortedBinaryDocValues values = valuesSource.bytesValues(context); return replaceMissing(values, missing); }
@Override public SortedSetDocValues globalOrdinalsValues(LeafReaderContext context) throws IOException { SortedSetDocValues values = valuesSource.globalOrdinalsValues(context); return replaceMissing(values, missing); }
@Override public SortedBinaryDocValues bytesValues(LeafReaderContext context) throws IOException { return replaceMissing(valuesSource.bytesValues(context), new BytesRef(missing.toString())); }
@Override public SortedBinaryDocValues bytesValues(LeafReaderContext context) throws IOException { return replaceMissing(valuesSource.bytesValues(context), new BytesRef(missing.toString())); }
final BytesRef missing = format.parseBytesRef(missing().toString()); if (vs instanceof ValuesSource.Bytes.WithOrdinals) { return (VS) MissingValues.replaceMissing((ValuesSource.Bytes.WithOrdinals) vs, missing); } else { return (VS) MissingValues.replaceMissing((ValuesSource.Bytes) vs, missing); return (VS) MissingValues.replaceMissing((ValuesSource.Numeric) vs, missing); } else if (vs instanceof ValuesSource.GeoPoint) { return (VS) MissingValues.replaceMissing((ValuesSource.GeoPoint) vs, missing); } else {
@Override public SortedNumericDoubleValues doubleValues(LeafReaderContext context) throws IOException { final SortedNumericDoubleValues values = valuesSource.doubleValues(context); return replaceMissing(values, missing.doubleValue()); } };
@Override public MultiGeoPointValues geoPointValues(LeafReaderContext context) { final MultiGeoPointValues values = valuesSource.geoPointValues(context); return replaceMissing(values, missing); } };