code: @Override
      public Query query(Schema schema) {
  
          if (field == null || field.trim().isEmpty()) {
              throw new IllegalArgumentException("Field name required");
          }
          if (values == null) {
              throw new IllegalArgumentException("Field values required");
          }
          if (slop == null) {
              throw new IllegalArgumentException("Slop required");
          }
          if (slop < 0) {
              throw new IllegalArgumentException("Slop must be positive");
          }
  
          ColumnMapperSingle<?> columnMapper = getMapper(schema, field);
          Class<?> clazz = columnMapper.baseClass();
          if (clazz == String.class) {
              PhraseQuery query = new PhraseQuery();
              query.setSlop(slop);
              query.setBoost(boost);
              int count = 0;
              for (String value : values) {
                  if (value != null) {
                      String analyzedValue = analyze(field, value, schema);
                      if (analyzedValue != null) {
                          Term term = new Term(field, analyzedValue);
                          query.add(term, count);
                      }
                  }
                  count++;
              }
              return query;
          } else {
              String message = String.format("Unsupported query %s for mapper %s", this, columnMapper);
              throw new UnsupportedOperationException(message);
          }
      }
docs: {@inheritDoc}