过滤弹性搜索?

时间:2012-11-19 10:05:19

标签: php elasticsearch

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

在SQL中,我将使用一个between运算符来获得结果,但是从我到目前为止所读到的,它们在弹性搜索中并不是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"
                    }
                  }
                } 
            }'

1 个答案:

答案 0 :(得分:2)

在elasticsearch中,您可以使用range过滤器查询来实现此目的。