2016-03-19 3 views
3

У меня есть этот поисковый запрос:Elasticsearch диапазон запросов (PHP Client)

$params = [ 
    'index' => 'veenendaal2', 
    'type' => 'passanten2', 
    'size' => $size, 
    'body' => [ 
     'query' => [ 
     "match_all" => [], 
     'filter' => [ 
      'range' => [ 
      'Tijdsperiode' => [ 
       'gte' => '2016-01-30 01:00:00', 
       'lte' => '2016-01-30 08:00:00' 
      ] 
      ] 
     ] 
     ], 
     'mappings' => [ 
     '_default_' => [ 
      'properties' => [ 
      'Tijdsperiode' => [ 
       'type' => 'date', 
       'format' => 'yyyy-MM-dd HH:mm:ss' 
      ] 
      ] 
     ] 
     ] 
    ] 
    ]; 

Но я не могу получить его, чтобы отфильтровать результаты между 2 датами?

Любые идеи, как исправить это? Мне нужно изменить синтаксис?

ответ

1

Возможно, вам необходимо удалить раздел mappings из вашего поискового запроса, поскольку он там не принадлежит (т. Е. Он необходим только при создании индекса, а не при поиске). Тогда вам, вероятно, не нужен запрос filtered, и этого должно быть достаточно, чтобы получить некоторые документы.

$params = [ 
    'index' => 'veenendaal2', 
    'type' => 'passanten2', 
    'size' => $size, 
    'body' => [ 
     'query' => [ 
     'filtered' => [ 
      'filter' => [ 
      'range' => [ 
       'Tijdsperiode' => [ 
       'gte' => '2016-01-30 01:00:00', 
       'lte' => '2016-01-30 08:00:00' 
       ] 
      ] 
      ] 
     ] 
     ] 
    ] 
    ]; 
+0

Попробуй это, спасибо –

Смежные вопросы