如何从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
}
}
]
}
}
}
你可以使用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
}
}
]
}
}
}