code: @SuppressWarnings({"unchecked", "rawtypes"})
      @Override
      public int compareValues(BytesRef val1, BytesRef val2) {
          if (val1 == null) {
              if (val2 == null) {
                  return 0;
              }
              return -1;
          } else if (val2 == null) {
              return 1;
          }
          Token t1 = tokenMapperGeneric.token(val1);
          Token t2 = tokenMapperGeneric.token(val2);
          return t1.compareTo(t2);
      }
docs: Compares its two field value arguments for order. Returns a negative integer, zero, or a positive integer as the
  first argument is less than, equal to, or greater than the second.
  
  @param val1 The first field value to be compared.
  @param val2 The second field value to be compared.
  @return A negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater
  than the second.