2017-10-12 3 views
0

J'essaie de filtrer les résultats de la recherche élastique en fonction des dates comprises entre la date de début et la date de fin.La version de recherche élastique est 1.7.6.La recherche élastique ne donne pas de résultats corrects lors de l'exécution de la requête de plage de dates

Il donne des résultats complètement faux. J'utilise marvel pour interroger l'index.

Le schéma est

"starting_on": { 
      "type": "date", 
      "format": "dateOptionalTime" 
      } 
My query is below:-- 

      GET XX/XX/_search 
      { 
      "_source": [ 
       "arrivals.starting_on", 
       "arrivals.ending_on" 
       ], 
       "query": { 
       "filtered": { 
      "filter": { 
       "bool": { 
      "must": [ 
      { 
       "range": { 

       "starting_on": { 
        "gte" : "2017-10-14", 
        "format": "dateOptionalTime", 


       }, 
       "ending_on": { 
        "lte" : "2017-10-17", 
        "format": "dateOptionalTime", 

       } 
       } 

      } 
      ] 
     } 
     } 
    } 
    } 
} 
+0

Compte tenu de ce que vous avez dans '_source', êtes-vous sûr que dans votre requête de gamme' starting_on' ne devrait pas être 'arrivées.starting_on' (même chose que' ending_on')? – Val

+0

requête ne donne aucun résultat lorsque je fais des arrivées.starting_on ou arrivées.ending_on – user2873744

Répondre

0

Votre range requête est mal, vous ne pouvez pas avoir deux champs, vous devez avoir deux au lieu range requêtes, comme ceci:

GET XX/XX/_search 
{ 
    "_source": [ 
    "arrivals.starting_on", 
    "arrivals.ending_on" 
    ], 
    "query": { 
    "filtered": { 
     "filter": { 
     "bool": { 
      "must": [ 
      { 
       "range": { 
       "arrivals.starting_on": { 
        "gte": "2017-10-14", 
        "format": "dateOptionalTime" 
       } 
       } 
      }, 
      { 
       "range": { 
       "arrivals.ending_on": { 
        "lte": "2017-10-17", 
        "format": "dateOptionalTime" 
       } 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
} 
+0

Une chance avec cela? – Val