/**
  * Builds a query based on QueryString syntax
  * @param array $fields the fields
  * @param string $queryString the query
  * @param integer $phraseSlop phrase slop
  * @param string $defaultOperator the default operator AND or OR
  * @return \Elastica\Query\QueryString
  */
 public function buildQueryString(array $fields, $queryString, $phraseSlop, $defaultOperator = 'AND')
 {
     $query = new \Elastica\Query\QueryString($queryString);
     $query->setFields($fields);
     $query->setAutoGeneratePhraseQueries(true);
     $query->setPhraseSlop($phraseSlop);
     $query->setDefaultOperator($defaultOperator);
     $query->setAllowLeadingWildcard($this->context->isAllowLeadingWildcards());
     $query->setFuzzyPrefixLength(2);
     $query->setRewrite('top_terms_boost_1024');
     return $query;
 }
 /**
  * Builds a query based on QueryString syntax
  * @param array $fields the fields
  * @param string $queryString the query
  * @param integer $phraseSlop phrase slop
  * @param string $defaultOperator the default operator AND or OR
  * @return \Elastica\Query\QueryString
  */
 public function buildQueryString(array $fields, $queryString, $phraseSlop, $defaultOperator = 'AND')
 {
     $query = new \Elastica\Query\QueryString($queryString);
     $query->setFields($fields);
     $query->setAutoGeneratePhraseQueries(true);
     $query->setPhraseSlop($phraseSlop);
     $query->setDefaultOperator($defaultOperator);
     $query->setAllowLeadingWildcard($this->context->isAllowLeadingWildcards());
     $query->setFuzzyPrefixLength(2);
     $query->setRewrite('top_terms_boost_1024');
     $states = $this->context->getConfig()->get('CirrusSearchQueryStringMaxDeterminizedStates');
     if (isset($states)) {
         // Requires ES 1.4+
         $query->setParam('max_determinized_states', $states);
     }
     return $query;
 }