@Override
    public boolean isBetterFilter(Filter comparedTo, ExecutionContext context, int thisSize)
        throws FunctionDomainException, TypeMismatchException, NameResolutionException,
        QueryInvocationTargetException {
      // If the current filter is equality & comparedTo filter is also equality based , then
      // return the one with lower size estimate is better
      boolean isThisBetter = true;

      int thatOperator = comparedTo.getOperator();

      // Go with the lowest cost when hint is used.
      if (context instanceof QueryExecutionContext
          && ((QueryExecutionContext) context).hasHints()) {
        return thisSize <= comparedTo.getSizeEstimate(context);
      }

      switch (thatOperator) {
        case TOK_EQ:
          isThisBetter = false;
          break;
        case TOK_NE:
        case TOK_NE_ALT:
          // Give preference to Range
          break;
        default:
          throw new IllegalArgumentException("The operator type =" + thatOperator + " is unknown");
      }

      return isThisBetter;
    }
@param notEqualTypeKeys java.utils.Set object containing the Keys of the 'NOT EQUAL' type
       conditions ( a != 3 and a !=5) For DoubleCondnRangeJunctionEvaluator , this may be
       null
@param indxInfo The IndexInfo object corresponding to the RangeJunction
geode-core/src/main/java/org/apache/geode/cache/query/internal/RangeJunction.java