2012-12-15 37 views
17

我有以下简单elastisearch查询:elasticsearch设置排序顺序使用查询字符串

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

,它工作正常

现在,我试图通过anio递减订购。我试图与所有这些选项:

...l&sort=anio desc 

...l&sort=-anio 

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

但他们都不似乎工作

我怎样才能实现呢? (理想情况下,来自查询字符串,而不必使用更复杂的查询)

+2

尝试排序= anio:倒序 –

+0

非常感谢迭戈,请输入它作为一个答案,所以我可以接受它! – opensas

+0

顺便说一句,任何人都知道如何订购几个领域,如anio,cuenta,subcuenta ???从que querystring – opensas

回答

31

尝试sort = anio:desc。

有关参数列表,请参见search API - uri request

+0

Godd Job Buddy ,.你知道我们是否可以在查询字符串中使用GroupBy? 另外我想用GroupBy来计数。可能吗 ? –

2

要回答opensas质疑

elasticsearch set sort order using querystring

此功能被称为多级排序。

实例查询

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

顺序很重要。结果首先按第一条标准排序。只有第一个排序值相同的结果才会按第二个标准排序,依此类推。 http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/_sorting.html#_multilevel_sorting