non enregistré pour

J’ai une requête dont j’ai besoin pour filtrer les résultats.

Ceci est ma requête

{ "query": { "filtered": { "query": { "multi_match": { "default_operator": "AND", "fields": [ "author", "title", "publisher", "year" ], "query": "George Orwell" } }, "filter": { "terms": { "year": [ 1980, 1981 ] } } } } } 

J’ai une erreur en disant no [query] registered for [filtered] . J’ai clairement une requête pour le champ filtré. Je suis le format indiqué dans la documentation de requête filtrée sur la page elasticsearch. https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filtered-query.html

La requête filtered a été déconseillée et supprimée dans ES 5.0. Vous devriez maintenant utiliser la requête bool/must/filter la place.

 { "query": { "bool": { "must": { "multi_match": { "operator": "and", "fields": [ "author", "title", "publisher", "year" ], "query": "George Orwell" } }, "filter": { "terms": { "year": [ 1980, 1981 ] } } } } } 

Voici les différences entre les deux requêtes:

 3,4c3,4 < "bool": { < "must": { --- > "filtered": { > "query": { 6c6 < "operator": "and", --- > "default_operator": "AND", 

PS: la page de référence que vous consultez se trouve dans les “pages supprimées” de l’annexe, elle ne fait donc plus partie de la documentation principale.