Python

时间:2015-04-22 12:17:23

标签: python elasticsearch

我搜索过但搜索过但无法找到答案。我不熟悉使用Elasticsearch和Python,并尝试对我的Elasticsearch索引进行简单的Python查询,该索引将返回与过去一小时内的一组特定条件匹配的结果计数。我使用以下(已清理的)代码获取所有结果:

 hits = es.count(index='myindex-*',q=thing.rstrip() )

足够简单吧?那么有没有办法在这个查询中包含相对时间范围,或者我是否需要编写一些Python来计算插入时间范围的时间?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

是的,您需要的只是索引中基于时间的密钥,然后使用以下命令查询该密钥:

{
    "query" : {
        "range" : {
            "<time_based_key>" : {
                "gte" : "now-1h"
            }
        }
    }
}

定义基于时间的密钥:

curl -XPUT localhost:9200/<database>/<index>/_mapping?pretty -d '
{
    "<index>" : {
        "properties": {
            "<time_based_key>" : {
                "type" : "date",
                "index": "not_analyzed"
            }
        }
    }
}'