Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 弹性搜索日期范围聚合未提供完整数据_Node.js_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Node.js,elasticsearch" /> elasticsearch,Node.js,elasticsearch" />

Node.js 弹性搜索日期范围聚合未提供完整数据

Node.js 弹性搜索日期范围聚合未提供完整数据,node.js,elasticsearch,Node.js,elasticsearch,我正在查询根据日期范围获取聚合数据,如下所示 "aggs": { "range": { "date_range": { "field": "sold", "ranges": [ { "from": "2014-11-01", "to": "2014-11-30" }, { "from": "2014-08-01

我正在查询根据日期范围获取聚合数据,如下所示

"aggs": {
        "range": {
            "date_range": {
                "field": "sold",
                "ranges": [
                    {  "from": "2014-11-01", "to": "2014-11-30" },
                    {  "from": "2014-08-01", "to": "2014-08-31" } 
                ]
            }
        }
    }
使用此选项,我得到了此响应

"aggregations": {
    "range": {
      "buckets": [
        {
          "key": "2014-08-01T00:00:00.000Z-2014-08-31T00:00:00.000Z",
          "from": 1406851200000,
          "from_as_string": "2014-08-01T00:00:00.000Z",
          "to": 1409443200000,
          "to_as_string": "2014-08-31T00:00:00.000Z",
          "doc_count": 1
        },
        {
          "key": "2014-11-01T00:00:00.000Z-2014-11-30T00:00:00.000Z",
          "from": 1414800000000,
          "from_as_string": "2014-11-01T00:00:00.000Z",
          "to": 1417305600000,
          "to_as_string": "2014-11-30T00:00:00.000Z",
          "doc_count": 2
        }
      ]
    }
  }
但我还需要满足此范围的完整聚合数据,而不仅仅是doc_count,
是否有办法获得此信息。请帮助

不清楚您要查找的其他字段,因此我提供了几个示例

通过将另一个aggs嵌套在第一个内,您可以要求Elasticsearch提取其他值,例如,、min、max、stats、

此示例查询将返回
field\u count
——一个
myfield
并返回
订单计数
——一个基于脚本的总和

"aggs": {
    "range": {
        "date_range": {
            "field": "sold",
            "ranges": [
                {  "from": "2014-11-01", "to": "2014-11-30" },
                {  "from": "2014-08-01", "to": "2014-08-31" } 
            ]
        }
    }
},
"aggs" : {
      "field_count": {"value_count" : { "field" : "myfield" }  },
      "order_count": {"sum" : {"script" : " doc[\"output_msgtype\"].value == \"order\" ? 1 : 0"} }  }}
}

如果您没有在数据上寻找任何总和、计数和平均值,那么聚合将不会有任何帮助

相反,我会在每个范围内运行一次标准查询。e、 g:

curl -XGET 'http://localhost:9200/test/cars/_search?pretty' -d '{
"fields" : ["price", "color", "make", "sold" ],
"query":{
   "filtered": {   
    "query": {
      "match_all" : { }
    },
 "filter" : {
        "range": {"sold": {"gte": "2014-09-21T20:03:12.963","lte": "2014-09-24T20:03:12.963"}}}
    }
  }
}'

根据需要重复此查询,但每次都要修改范围。

Hi ollyc,谢谢,但我想知道如何获取满足此条件的实际数据,请查看能否更新您的问题?您的要求不明确-您是在询问聚合总数还是在聚合中过滤?嗨,ollyc,假设我有以下数据[{“价格”:20000,“颜色”:“红色”,“制造”:“本田”,“售出”:“2014-11-05”},{“价格”:20000,“颜色”:“红色”,“制造”:“本田”,“售出”:“2014-11-05”},{“价格”:30000,“颜色”:“绿色”,“制造”:“福特”,“售出”:“2014-05-18”}]我正在查询“aggs”:{“范围”:{“日期范围”:{“字段”:“售出”,“范围”:[{“从”:“2014-11-01”,“至”:“2014-11-30”}]继续输出是“聚合”:{“范围”:{“桶”:[{“键”:“2014-11-01T00:00:00.000Z-2014-11-30T00:00:00.000Z”,“from”:141480000000,“from”;“from”;“from”;“from”;“from”;“from”;“from”;“from”;“from”:“2014-11-01T00:00:00.000Z”,“to”:1417305600000,“to”;“to”“2014-11-30T00:00:00.000Z”,“doc_count”:2}]}}}从输出中我得到两个数据(doc_count)在这个范围内,可以继续……。但是如果我需要满足这个条件或范围的数据,比如{“price”:20000,“color”:“red”,“make”:本田,售出:2014-11-05{“价格:20000,颜色:”“红色”,“制造:”“本田”,“售出:”“2014-11-05”}我需要做什么?请帮助???嗨,ollyc,谢谢,我知道这种方式,我需要基于聚合(或分组方式)获取数据,是否可以通过聚合获取数据