curl -X GET 'http://xxx.xxx.x.xx:9200/upslinklog/upslinklog/_search?pretty' -d '{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"range": {
"logTimestamp": {
"gte": "2017/05/17",
"lte":"2017/05/18"
"format": "yyyy/mm/dd"
}
}
}
}
}
'
我想在2017年5月17日之后进行记录。以上查询代码给出了所有记录而不是一些记录。如何对过滤数据进行范围查询
答案 0 :(得分:1)
首先,您必须在索引配置中指定logTimestamp
作为日期。
来自 Elasticsearch documentation "Date datatype" :
索引配置示例:
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"date": {
"type": "date"
}
}
}
}
}
然后您可以使用简单的 Range Query :
GET _search
{
"query": {
"range" : {
"born" : {
"gte": "01/01/2012",
"lte": "01/01/2013",
"format": "dd/MM/yyyy"
}
}
}
}