ElasticSearch - 日期直方图结果的分页

时间:2013-11-10 10:18:38

标签: date pagination elasticsearch histogram

是否可以对日期直方图中的结果进行分页?

我有以下示例日期直方图,但使用“from”:0,“size”:10个参数似乎不起作用。

POST _search/
{
    "query" : {
        "match_all" : {}
    },
    "facets" : {
        "histo1" : {                
            "date_histogram" : {
                "value_field": "value.count", 
                "interval" : "10s",
                "field": "_timestamp"
            }
        }
    }
}

1 个答案:

答案 0 :(得分:2)

“from”和“size”参数仅适用于查询结果(点击)。无论您选择检索多少记录,Facet都会在整个结果列表中运行。因此,为了在直方图上实现“分页”,您需要限制查询。例如,为了检索过去一小时的所有直方图桶,您只需向查询添加范围查询或过滤器,将结果限制为当前小时。如果将_timestamp编入索引为日期,则可以执行以下操作:

POST _search/
{
    "query" : {
        "filtered": {
            "query": {
                "match_all" : {}
            },
            "filter": {
                "range" : {
                    "_timestamp" : {
                        "gt": "now-1h",
                        "lte": "now"
                    }
                }

            }
        }
    },
    "facets" : {
        "histo1" : {                
            "date_histogram" : {
                "value_field": "value.count", 
                "interval" : "10s",
                "field": "_timestamp"
            }
        }
    }
}