diff --git a/Query/DisMaxQuery.php b/Query/DisMaxQuery.php index db8b316fac2a7f0c2479f8d74c5ec69aea4b085e..c77daeb9ab43c8da20edd5a1ae26017890f7f8a6 100644 --- a/Query/DisMaxQuery.php +++ b/Query/DisMaxQuery.php @@ -29,23 +29,27 @@ class DisMaxQuery implements BuilderInterface /** * Initializes Dis Max query. * - * @param BuilderInterface[] $queries - * @param array $parameters - * - * @throws \InvalidArgumentException + * @param array $parameters */ - public function __construct(array $queries = [], array $parameters = []) + public function __construct(array $parameters = []) { - foreach ($queries as $query) { - if ($query instanceof BuilderInterface) { - $this->queries[] = $query; - } else { - throw new \InvalidArgumentException('Arguments must be instance of BuilderInterface'); - } - } $this->setParameters($parameters); } + /** + * Add query. + * + * @param BuilderInterface $query + * + * @return DisMaxQuery + */ + public function addQuery(BuilderInterface $query) + { + $this->queries[] = $query; + + return $this; + } + /** * {@inheritdoc} */ diff --git a/Query/FuzzyLikeThisField.php b/Query/FuzzyLikeThisFieldQuery.php similarity index 89% rename from Query/FuzzyLikeThisField.php rename to Query/FuzzyLikeThisFieldQuery.php index c27fc1575a026353ef0a02ea9da9ac179df01316..39fc1f349941d67fe04b6134f0a49e86b8d84982 100644 --- a/Query/FuzzyLikeThisField.php +++ b/Query/FuzzyLikeThisFieldQuery.php @@ -17,7 +17,7 @@ use ONGR\ElasticsearchBundle\DSL\ParametersTrait; /** * Elasticsearch fuzzy_like_this_field query class. */ -class FuzzyLikeThisField implements BuilderInterface +class FuzzyLikeThisFieldQuery implements BuilderInterface { use ParametersTrait; @@ -31,11 +31,6 @@ class FuzzyLikeThisField implements BuilderInterface */ private $likeText; - /** - * @var string - */ - private $analyzer; - /** * @param string $field * @param string $likeText @@ -63,7 +58,6 @@ class FuzzyLikeThisField implements BuilderInterface { $query = [ 'like_text' => $this->likeText, - 'analyzer' => $this->analyzer, ]; $output = [ diff --git a/Query/MultiMatchQuery.php b/Query/MultiMatchQuery.php index faeaa63ab4e3b9bc55036aa6920baca8ead9358c..8b33530fd92b6c2a4e4b2d9198dfd3ad939aab6a 100644 --- a/Query/MultiMatchQuery.php +++ b/Query/MultiMatchQuery.php @@ -12,12 +12,15 @@ namespace ONGR\ElasticsearchBundle\DSL\Query; use ONGR\ElasticsearchBundle\DSL\BuilderInterface; +use ONGR\ElasticsearchBundle\DSL\ParametersTrait; /** * Elasticsearch multi_match query class. */ class MultiMatchQuery implements BuilderInterface { + use ParametersTrait; + /** * @var array */ @@ -31,11 +34,13 @@ class MultiMatchQuery implements BuilderInterface /** * @param array $fields * @param string $query + * @param array $parameters */ - public function __construct(array $fields, $query) + public function __construct(array $fields, $query, array $parameters = []) { $this->fields = $fields; $this->query = $query; + $this->setParameters($parameters); } /** @@ -51,9 +56,13 @@ class MultiMatchQuery implements BuilderInterface */ public function toArray() { - return [ + $query = [ 'fields' => $this->fields, 'query' => $this->query, ]; + + $output = $this->processArray($query); + + return $output; } }