首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch-dsl排序,查找最后X个条目

Elasticsearch-dsl排序,查找最后X个条目
EN

Stack Overflow用户
提问于 2017-03-13 15:22:25
回答 3查看 7K关注 0票数 4

我尝试在我的索引/文档类型中查找最后30个条目

我什么都没试过,也没办法了!

我目前的方法是找到过去5分钟内的所有结果,然后过滤结果并抓取最后30个条目,但这比正确的方法要慢。

代码语言:javascript
复制
s = Search(using=es, index="history", doc_type=p)
   .filter('range', timestamp={'gte': mins})
   .extra(size=1000)

我试过了

代码语言:javascript
复制
s = Search(using=es, index="history", doc_type=p)
   .sort("timestamp", {'order': "desc"})
   .extra(size=30)
EN

回答 3

Stack Overflow用户

发布于 2017-03-16 14:52:30

按降序对timestamp进行排序的正确方法是s = s.sort('-timestamp')s = s.sort({"price" : {"order" : "desc"}})

您指定的sort不正确。

票数 2
EN

Stack Overflow用户

发布于 2017-03-13 17:03:40

检查文档类型中是否启用了timestamp.If它是启用的,那么只有我们可以在elasticsearch dsl中使用timestamp。

代码语言:javascript
复制
#Add Query
s = Search(using=es, index="history", doc_type=p).query("query_string", query="*").sort("timestamp", {'order': "desc"})

#To specify the from/size parameters i.e for first 30 entries
s=s[0:30]

#Call elasticsearch
s.execute()
票数 1
EN

Stack Overflow用户

发布于 2021-01-08 12:18:17

https://elasticsearch-dsl.readthedocs.io/en/latest/api.html?highlight=sort#elasticsearch_dsl.Search.sort

时间戳将按升序排序。

代码语言:javascript
复制
s = Search().sort('timestamp')

时间戳将按降序排序。

代码语言:javascript
复制
s = Search().sort('-timestamp')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42758289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档