Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.englishtown.vertx.solr.querybuilder.impl;
  
  
  import java.util.Arrays;
 import java.util.List;

 
 public class DefaultQueryBuilder implements QueryBuilder {
 
     private final List<TermfilterQueryTerms;
 
     private boolean showDebugInfo;
     private String queryPrefix;
 
     private static final String DESCENDING_DATE_BOOST = "{!boost b=product(recip(ms(NOW,$FIELDNAME),3.16e-11,1,1),$MULTIPLIER)}";
     private static final String ASCENDING_DATE_BOOST = "{!boost b=product(sub(1,recip(ms(NOW,$FIELDNAME),3.16e-11,1,1)),$MULTIPLIER)}";
     private Query query;
     private int numRows;
 
     public DefaultQueryBuilder() {
          = new ArrayList<>();
 
          = false;
          = "";
          = 10;
     }
 
     @Override
     public QueryBuilder query(Query query) {
         this. = query;
 
         return this;
     }
 
     @Override
     public QueryBuilder filterQuery(Term... terms) {
         // Go through all of the terms and ensure boost is set to 0, as boost has no meaning in the filter query
         for (Term term : terms) {
             term.boost(0);
         }
 
         .addAll(Arrays.asList(terms));
 
         return this;
     }
 
     @Override
     public QueryBuilder showDebugInfo() {
          = true;
 
         return this;
     }
 
     @Override
     public QueryBuilder dateBoost(String fieldNameDateOrder dateOrder) {
         return dateBoost(fieldNamedateOrder, 1);
     }
 
     @Override
     public QueryBuilder dateBoost(String fieldNameDateOrder dateOrderint multiplier) {
         if (fieldName == null || fieldName.equals("")) {
             throw new IllegalArgumentException("fieldname cannot be null or empty");
         }
 
          = .replace("$FIELDNAME"fieldName).replace("$MULTIPLIER", Integer.toString(multiplier));
 
         return this;
     }
 
     @Override
     public QueryBuilder rows(int numRows) {
         this. = numRows;
 
         return this;
     }
 
     @Override
     public VertxSolrQuery build() {
 
         String[] stringFilterQueries = new String[.size()];
         for (int i = 0; i < .size(); i++) {
             stringFilterQueries[i] = .get(i).toString();
         }
 
         String queryString = ( == null) ? "*:*" : .toString();
 
         VertxSolrQuery vertxSolrQuery = new VertxSolrQuery();
         vertxSolrQuery
                 .setQuery( + queryString)
                 .setRows()
                 .setFilterQueries(stringFilterQueries)
                 .setShowDebugInfo();
        return vertxSolrQuery;
    }
New to GrepCode? Check out our FAQ X