ElasticSearch, multi-match avec filtre?
J'ai un multi-match de la requête en ES, et que vous souhaitez ajouter un filtre.
{
"multi_match" : {
"query" : "this is a test",
"fields" : [ "subject^2", "message" ]
}
}
Quelle est la syntaxe pour ajouter ce filtre?
J'ai essayé:
{
"multi_match" => {
"query" => "list",
"fields" => [ "username" ]
},
"filter" => {
"term" => { "username" => "slimkicker"}
}
}
Vous devez vous connecter pour publier un commentaire.
En fonction de ce que vous avez besoin, vous devez mettre le filtre dans la position correcte. Vous avez deux options:
Utilisation d'un haut niveau de filtre et d'appliquer le filtre uniquement pour les résultats de recherche, mais pas au facettes
Utiliser une requête filtrée et appliquer le filtre à la fois les résultats de la recherche et de l'facettes
Avec Elasticsearch 5 la syntaxe a changé à l'utilisation de bool requête, par exemple
Documentation peut être trouvée ici.
Que par la nouvelle Documentation de Elasticsearch, le format est un peu changé, maintenant vous devez utiliser
bool
etmust
et peut s'appliquerfilter
séparément à partir d'une requête comme suit,Essayez ceci: