elasticsearch php客户端搜索日期类型

时间:2015-07-25 21:37:21

标签: elasticsearch

我有这样的映射类型的索引:

{
  "mappings":{
    "logs_june":{
      "_timestamp":{
        "enabled":"true"
      },
      "properties":{
        "logdate":{
          "type":"date",
          "format":"dd/MM/yyyy HH:mm:ss"
        }
      }
    }
  }
}

其中有许多文档(enter image description here)。当我尝试使用下面的搜索查询获取文档时,它会抛出SearchPhaseExecutionException ..所有分片都失败了.. bla bla 我必须解决什么问题?

$queryFilter = '{
                "query":{
                    "filtered":{
                        "query":{
                            "match_all":{}
                        },
                        "filter":{
                            "range":{
                                "logdate":{
                                    "gte":"00/00/2014 00:00:00  "
                                }
                            }
                        }
                    }
                }
            }';
            $params['body'] = $queryFilter;
            $params['index'] = 'accesslog';
            $params['size'] = 1000;
            $query = $elasticSearch->search($params);

1 个答案:

答案 0 :(得分:1)

我很确定你的SearchPhaseExecutionException会告诉你某些事情

IllegalFieldValueException[Cannot parse "00/00/2014 00:00:00": Value 0 for monthOfYear must be in the range [1,12]]; 

请尝试在"01/01/2014 00:00:00"过滤器中使用range,即使用有效的日期和月份而不是00,这是无效的。还要确保删除末尾的空格,因为它还会在解析日期期间导致错误。