code: @Override
      public Query query(Schema schema) {
          if (field == null || field.trim().isEmpty()) {
              throw new IllegalArgumentException("Field name required");
          }
          if (value == null || value instanceof String && ((String) value).trim().isEmpty()) {
              throw new IllegalArgumentException("Field value required");
          }
  
          ColumnMapperSingle<?> columnMapper = getMapper(schema, field);
          Class<?> clazz = columnMapper.baseClass();
          Query query;
          if (clazz == String.class) {
              String value = (String) columnMapper.queryValue(field, this.value);
              String analyzedValue = analyze(field, value, schema);
              if (analyzedValue == null) {
                  throw new IllegalArgumentException("Value discarded by analyzer");
              }
              Term term = new Term(field, analyzedValue);
              query = new TermQuery(term);
          } else if (clazz == Integer.class) {
              Integer value = (Integer) columnMapper.queryValue(field, this.value);
              query = NumericRangeQuery.newIntRange(field, value, value, true, true);
          } else if (clazz == Long.class) {
              Long value = (Long) columnMapper.queryValue(field, this.value);
              query = NumericRangeQuery.newLongRange(field, value, value, true, true);
          } else if (clazz == Float.class) {
              Float value = (Float) columnMapper.queryValue(field, this.value);
              query = NumericRangeQuery.newFloatRange(field, value, value, true, true);
          } else if (clazz == Double.class) {
              Double value = (Double) columnMapper.queryValue(field, this.value);
              query = NumericRangeQuery.newDoubleRange(field, value, value, true, true);
          } else {
              String message = String.format("Match queries are not supported by %s mapper", clazz.getSimpleName());
              throw new UnsupportedOperationException(message);
          }
          query.setBoost(boost);
          return query;
      }
docs: {@inheritDoc}