97 votes

non [requête] enregistrée pour [filtré]

J'ai une question dont j'ai besoin pour filtrer les résultats.

C'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
                    ]
                }
            }
        }
    }
}

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

170voto

Val Points 94829

L' filtered de la requête a été désapprouvée et enlevé en ES 5.0. Vous devez désormais utiliser l' bool/must/filter de la requête à 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 référence de la page que vous cherchez se trouve dans les "pages supprimées" de l'annexe, il n'est donc pas partie de la documentation de base plus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X