Vraiment pas d'idée ? Même sans parler de Symfony, directement avec Elasticsearch ?
Bonjour,
j'utilise Elasticsearch dans Symfony (via FOS\ElasticaBundle) et le JSON de mes données ressemble à ça.
Chaque "app/user_worker" peut avoir plusieurs "domains" de compétence et pour chacun il y a donc 1 "domain" et 1 ou plusieurs "offers" (professional, premium, prestige).
Pour mes recherches j'initialise ma requête ainsi :
Ensuite, pour chercher une entrée par "domain" j'utilise :
Ça fonctionne bien.
Pour chercher une entrée par "offer" j'utilise de la même façon :
Ça fonctionne bien aussi.
Mais si je cherche avec les 2 critères dans $query, le user_worker avec l'id = 4 ressort alors que "art-culturel" n'est pas associé à "premium" (mais comme ce user a aussi un domain avec "premium", il apparait dans les résultats).
Comment faire pour avoir seulement les résultats de "app/user_worker" ayant une entrée dans le tableau "domains" avec à la fois "domain.slug = 'art-culturel'" ET "offers.slug contenant 'premium'" ?
Quelle méthode de Elastica dois-je utiliser ?
Est-ce que je dois modifier ma structure dans Elasticsearch ?
Merci d'avance pour vos retours.