2016-03-19 11 views
3

Bu arama sorgusu vardır:Elasticsearch aralık sorgusu (PHP İstemci)

$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' 
      ] 
      ] 
     ] 
     ] 
    ] 
    ]; 

Ama bu 2 tarih arasındaki sonuçları filtrelemek için alamıyorum?

Herhangi bir fikir nasıl Bunu düzeltmek için? i sözdizimi değiştirmek gerekir MI?

cevap

1

Muhtemelen oraya ait olmadığı için (ararken, Dizininizi değil oluştururken yalnızca gereklidir yani) arama sorgusundan mappings bölümü kaldırmak gerekir. O zaman muhtemelen filtered sorgu kaçırdığınızı ve bu bazı dokümanlar almak için yeterli olmalıdır.

$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

o sayesinde deneyecek –