code: public Query query(Schema schema, Query rangeQuery) {
          if (queryCondition == null && filterCondition == null && rangeQuery == null) {
              return new MatchAllDocsQuery();
          }
          BooleanQuery booleanQuery = new BooleanQuery();
          if (queryCondition != null) {
              Query query = queryCondition.query(schema);
              booleanQuery.add(query, BooleanClause.Occur.MUST);
          }
          if (filterCondition != null) {
              Query query = new ConstantScoreQuery(filterCondition.query(schema));
              booleanQuery.add(query, BooleanClause.Occur.MUST);
          }
          if (rangeQuery != null) {
              booleanQuery.add(rangeQuery, BooleanClause.Occur.MUST);
          }
          return booleanQuery;
      }
docs: Returns the Lucene {@link Query} representation of this search. This {@link Query} include both the querying and
  filtering {@link Condition}s. If none of them is set, then a {@link MatchAllDocsQuery} is returned, so it never
  returns {@code null}.
  
  @param schema     The {@link Schema} to be used.
  @param rangeQuery An additional range {@link Query} to be used.
  @return The Lucene {@link Query} representation of this search.