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

问题描述 投票:0回答:1

如何从elasticsearch获取所有记录,最近的条目作为第一条记录

例如,

如果我有5个带有1到5个ID的库,我怎样才能从库5中获得完整的书籍列表,这些书籍按照最新的书籍排序。

这是我的示例查询,它由嵌套字段组成

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

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

               "library.bookname","library.author"
            ],
            "query": {
                "bool": {
                    "must": [
                        {
                            "match": {
                                "library.id": 5
                            }
                        }
                    ]
                }
            }
        }
elasticsearch elasticsearch-5
1个回答
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
                            }
                        }
                    ]
                }
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.