Bonjour tout le monde,

Je commence à utiliser ElasticaBundle avec Elasticsearch. Je préviens que c'est la toute première fois que j'utilise ce bundle et Elasticsearch.
J'ai réussi à faire une recherche avec un formulaire contenant des champs "Text" avec une seule valeur.
Maintenant, j'aimerais faire une recherche sur un champ mais qui peut contenir plusieurs valeurs.
Vous allez mieux comprendre avec mon code :

public function searchFull(CountrySearch $countrySearch) {

        if ($countrySearch->getName() == '' && $countrySearch->getContinents() == '') {
            // query
            $query = new MatchAll();
        } else {
            // query
            $query = new Bool();

            // Name
            if ($countrySearch->getName() != '') {
                $nameQuery = new QueryString();
                $nameQuery->setFields(array('name'));
                $nameQuery->setQuery($countrySearch->getName());
                $query->addMust($nameQuery);
            }

            // Continents
            if ($countrySearch->getContinents() != '') {
                $continentQuery = new \Elastica\Query\QueryString();
                $continentQuery->setFields(array('continent.name'));
                $continentQuery->setQuery(array('Europe','Asie'));
                $continentQuery->setDefaultOperator('OR');
                $query->addMust($continentQuery);
            }
        }

        return $this->find($query);
    }

Donc comme vous pouvez le voir, j'essaie de trouver tous les pays pour certains continents. Mais je ne sais pas du tout comment faire.

Merci d'avance pour votre aide.

Aucune réponse