web-dev-qa-db-fra.com

elasticsearch définit l'ordre de tri à l'aide de la chaîne de requête

J'ai la requête elastisearch simple suivante:

http://localhost:9200/apn/presupuesto/_search?q=subcuenta:penal&sort=anio

Et ça marche bien

Maintenant j'essaye de commander par anio desc. J'ai essayé avec toutes ces options:

...l&sort=anio desc

...l&sort=-anio

...l&sort=anio&order=desc

Mais aucun ne semblait fonctionner

Comment puis-je y parvenir? (idéalement, à partir de la chaîne de requête, sans avoir à utiliser une requête plus complexe)

20
opensas

Essayez sort = anio: desc.

Voir API de recherche - demande uri pour une liste de paramètres.

43
Diego Basch

Pour répondre à une question ouverte

elasticsearch définit l'ordre de tri à l'aide de la chaîne de requête

cette fonctionnalité est appelée tri multiniveau.

Exemple de requête

GET /_search
{
    "query" : {
        "filtered" : {
            "query":   { "match": { "Tweet": "manage text search" }},
            "filter" : { "term" : { "user_id" : 2 }}
        }
    },
    "sort": [
        { "date":   { "order": "desc" }},
        { "_score": { "order": "desc" }}
    ]
}

L'ordre est important. Les résultats sont d'abord triés selon le premier critère. Seuls les résultats dont la première valeur de tri est identique seront alors triés selon le deuxième critère, et ainsi de suite. http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_sorting.html#_multilevel_sorting

2
Vinay Vemula