2012-12-15 1 views
17

J'ai la simple requête elasticsearch suivante:ElasticSearch mis en ordre de tri en utilisant querystring

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

Et il fonctionne très bien

Maintenant, je suis en train 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 d'entre eux ne semblait fonctionner

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

+2

Essayez sort = Anio: desc –

+0

merci beaucoup Diego, s'il vous plaît entrer comme une réponse pour que je puisse l'accepter! – opensas

+0

BTW, quelqu'un sait comment commander par plusieurs champs, comme anio, cuenta, subcuenta ??? from querystring – opensas

Répondre

31

Essayez sort = anio: desc.

Voir search API - uri request pour une liste de paramètres.

+0

Godd Job Buddy ,. Savez-vous si nous pouvons utiliser un GroupBy dans une chaîne de requête? Aussi je veux compter avec GroupBy. c'est possible ? –

2

Pour répondre à opensas question

elasticsearch set sort order using querystring

cette fonction est appelée tri multi-niveaux.

Exemple requête est

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

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