if (terms == null || terms.isEmpty()) return null;
// verify we have a floating point numeric fielddata
IndexNumericFieldData indexNumericFieldData = (IndexNumericFieldData) fieldData;
if (indexNumericFieldData.getNumericType().isFloatingPoint()) {
final SortedNumericDoubleValues values = indexNumericFieldData.load(context).getDoubleValues(); // load fielddata
return new DocValuesDocIdSet(context.reader().maxDoc(), acceptDocs) {
@Override
protected boolean matchDoc(int doc) {
values.setDocument(doc);
final int numVals = values.count();
for (int i = 0; i < numVals; i++) {
if (terms.contains(values.valueAt(i))) {
return true;
}
}
return false;