setParam('analyzer', $analyzer); } /** * @param string $sort see SORT_* constants for options * * @return $this */ public function setSort($sort) { return $this->setParam('sort', $sort); } /** * @param string $mode see SUGGEST_MODE_* constants for options * * @return $this */ public function setSuggestMode($mode) { return $this->setParam('suggest_mode', $mode); } /** * If true, suggest terms will be lower cased after text analysis. * * @param bool $lowercase * * @return $this */ public function setLowercaseTerms($lowercase = true) { return $this->setParam('lowercase_terms', (bool) $lowercase); } /** * Set the maximum edit distance candidate suggestions can have in order to be considered as a suggestion. * * @param int $max Either 1 or 2. Any other value will result in an error. * * @return $this */ public function setMaxEdits($max) { return $this->setParam('max_edits', (int) $max); } /** * The number of minimum prefix characters that must match in order to be a suggestion candidate. * * @param int $length defaults to 1 * * @return $this */ public function setPrefixLength($length) { return $this->setParam('prefix_len', (int) $length); } /** * The minimum length a suggest text term must have in order to be included. * * @param int $length defaults to 4 * * @return $this */ public function setMinWordLength($length) { return $this->setParam('min_word_length', (int) $length); } /** * @param int $max defaults to 5 * * @return $this */ public function setMaxInspections($max) { return $this->setParam('max_inspections', $max); } /** * Set the minimum number of documents in which a suggestion should appear. * * @param int|float $min Defaults to 0. If the value is greater than 1, it must be a whole number. * * @return $this */ public function setMinDocFrequency($min) { return $this->setParam('min_doc_freq', $min); } /** * Set the maximum number of documents in which a suggest text token can exist in order to be included. * * @param float $max * * @return $this */ public function setMaxTermFrequency($max) { return $this->setParam('max_term_freq', $max); } /** * Which string distance implementation to use for comparing how similar suggested terms are. * Five possible values can be specified:. * * - internal * - damerau_levenshtein * - levenshtein * - jaro_winkler * - ngram * * @param string $distanceAlgrorithm * * @return $this */ public function setStringDistanceAlgorithm($distanceAlgorithm) { return $this->setParam('string_distance', $distanceAlgorithm); } }