Cependant, cela ne corresponds pas tout à fait à ce que je veux obtenir. Je voulais créer deux bloc "should" mais cela n'est pas possible. Je ne sais comment dissocier les deux bloc "Ou" avec un "ET" au milieu.
Perso j'utilise "term" au lieu de "match", pour être sure d'avoir le résultat exact.
"match" est moins strict... ca dépends de ce que tu recherches.
mais si tu utilises minimum_should_match c'est que tu veux du match.
just pour info au cas ou:
GET exemple/doc/_search
{
"query" : {
"bool" : {
"must" : [
{ "match": { "nom": "..."} }, # where nom = ....
{"bool": { "must" [ # AND
{"bool": { "should" [ # OR
{"match" : { "prenom ": "X" }}, # prenom = X
{"match": {"adresse ": "Y"}}, # adresse = Y
]}}]}},
{"bool": { "must" [ # AND
{"bool": { "should" [ # OR
{"match" : { "age ": "X" }}, # age = W
{"match": {"sexe ": "Y"}}, # sexe = Z
]}}]}},
],
"minimum_should_match": 2
}
},
}
Si je ne me suis pas trompé dans les accolades ca devrait le faire.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.