Elasticsearch:如何首先获取具有最新条目的所有记录

时间:2019-04-09 09:34:35

标签: elasticsearch elasticsearch-5

如何从Elasticsearch获取所有记录,并将最新条目作为第一条记录

例如,

如果我有5个ID从1到5的库, 如何从图书馆5获取完整的书籍清单,并按输入的最新书籍进行排序。

这是我的示例查询,其中包含嵌套字段

http://localhost:9200/library*/_search

 {
            "size": 1000,
            "_source": [

               "library.bookname","library.author"
            ],
            "query": {
                "bool": {
                    "must": [
                        {
                            "match": {
                                "library.id": 5
                            }
                        }
                    ]
                }
            }
        }

1 个答案:

答案 0 :(得分:0)

您可以使用sort option in the request body。如果要按输入的最新书籍进行排序,则应将一个order选项设置为desc。为此,您需要有一个时间戳字段或一个类似的字段,可以按其输入的顺序进行排序。
假设您有一个日期字段timestamp,它将用于按最新输入的日期进行排序,然后您可以执行以下操作对结果进行排序: "sort": { "timestamp": { "order": "desc" } }
因此,您的示例查询将如下所示:

http://localhost:9200/library*/_search

 {
            "size": 1000,
            "sort": { "timestamp": { "order": "desc" } },
            "_source": [

               "library.bookname","library.author"
            ],
            "query": {
                "bool": {
                    "must": [
                        {
                            "match": {
                                "library.id": 5
                            }
                        }
                    ]
                }
            }
        }