【发布时间】:2017-01-17 23:27:39
【问题描述】:
我正在尝试使用 elasticsearch-dsl 库,但不幸的是它没有很好的文档记录。
我有以下过滤器,它有效。
首先我发现我需要搜索多远。
longtime = datetime.datetime.strptime(str(datetime.datetime.now() - datetime.timedelta(seconds=int(pairs[p][1]) + basehrs)), '%Y-%m-%d %H:%M:%S.%f').strftime('%s.%f')
然后我使用过滤器运行搜索
s = Search(using=es, index="history", doc_type=pairs[p][0]).filter('range', timestamp={'gte': longtime})
在此之后,我应该需要运行一些 aggs。我有以下,但它不起作用:
s = s.aggs.bucket('average', 'avg', field='ask')
它只是返回:
平均(字段='询问')
我还需要它来进行有趣的计算,而不仅仅是简单的计算。我需要问 + (spread / 2)
即
s = s.aggs.bucket('average', 'avg', field='ask + (spread / 2')
有人有什么想法吗?
当我们在这里时,我需要将 spread 设为整数类型,它目前是一个字符串。我首先使用python创建索引;我很高兴删除我的索引并重新开始,但是我不知道如何在创建时在 python 中指定字段类型。
【问题讨论】:
标签: python python-3.x elasticsearch-dsl elasticsearch-py