ElasticSearch中的排序和最新记录

Abh*_*hak 3 lucene elasticsearch

我有两个与ElasticSearch相关的问题.

1)有没有办法指定我希望特定字段的结果按降序排序?一个等价的SQL查询将是:

select * from table1 where a="b" order by myprimarykey desc;
Run Code Online (Sandbox Code Playgroud)

2)如何获得第一个和最后一个(最新)记录?

imo*_*tov 9

1)Elasticsearch具有相当复杂的Sorting API,允许您控制排序顺序.因此,在elasticsearch中,与MySql查询等价的内容如下所示:

{
    "query" : {
        "term" : { "a" : "b" }
    },
    "sort" : [
        { "myprimarykey" : "desc"} }
    ]
}
Run Code Online (Sandbox Code Playgroud)

也可以在_search URI上指定排序.

2)要检索第一个和最后一个记录,您需要使用descasc排序顺序执行两次搜索并为每个记录检索一条记录.可以使用Multi Search API组合这两个查询.