1

我正在使用 date_histogram api 使用间隔(小时/天/周或月)获取实际计数。此外,我还有一个难以实现的功能,用户可以通过输入将使用字段时间戳查询的 startDate 和 endDate (文本框)来过滤结果。那么如何在使用 date_histogram api 或任何 api 时仅查询一个字段(即 TIMESTAMP)来过滤结果,以便实现我想要的结果。

在 SQL 中,我将只使用 between 运算符来获取结果,但从我目前阅读的内容来看,它们在 Elastic Search 中没有 BETWEEN 运算符(不确定)。

到目前为止,我有这个脚本:

curl 'http://anotherdomain.com:9200/myindex/_search?pretty=true' -d '{
               "query" : { 
                  "filtered" : { 
                     "filter" : { 
                        "exists" : { 
                           "field" : "adid" 
                        } 
                     }, 
                     "query" : { 
                        "query_string" : {
                          "fields" : [
                            "adid", "imp"
                            ],
                            "query" : "525826 AND true"
                        }
                     }

                  } 
               },
               "facets" : {
                  "histo1":{
                    "date_histogram":{
                      "field":"timestamp",
                      "interval":"day"
                    }
                  }
                } 
            }'
4

1 回答 1

2

在弹性搜索中,您可以使用过滤器的范围查询来实现这一点。

于 2012-11-19T11:10:46.940 回答