2015-08-31 2 views
1

J'ai des champs entiers compris entre 0 et 100, j'utilise un filtre de requête avec gte, lte et gt, lt. Le comportement de elasticsearch est très étrange quand je mets le filtre 0 - 100 il montre seulement 1 résultat et quand je règle la gamme de 0-99 il me donne le résultat correct (qui est 2 dans mon cas).Elasticsearch Range Filtre comportement étrange pour le type de données numériques comme entier, long, double

Même si je règle la plage de 0-1000, cela me donne 0 jeu de résultats. Premièrement, je pensais que c'était peut-être dû au problème de type de données puisque mes valeurs (coût) étaient stockées sous forme de chaîne mais maintenant j'ai changé le type de données en entier mais le filtre de gamme ne fonctionne pas correctement.

Rechercher

{ 
"query": { 
    "filtered": { 
    "filter": { 
     "bool": { 
     "must": [ 
      { 
      "range": { 
      "cost": { 
       "gte": 0, 
       "lte":100 
      } 
      } 
     }, 
      { 
      "term":{ 
       "parentId":"6" 
      } 
      } 
     ] 
     } 
    } 
    } 
} 

}

+0

Avez-vous réindexé des données après avoir changé le type en 'entier'? –

+0

oui j'ai réindexé des données après le changement de type –

+0

Pouvez-vous poster le mappage aussi –

Répondre

0

Supprimer l'index (si nécessaire)/réindexation données résoudre le problème.