web-dev-qa-db-fra.com

Comment interroger elasticsearch pour plus que et moins que?

Je veux obtenir des valeurs entre 1000 et 2000. J'ai essayé cette requête:

{
    "query": {
        "bool": {
            "filter": [{
                "range": {
                    "price": {
                        "gte": 1000
                    },
                    "price": {
                        "lte": 2000
                    }
                }
            }]
        }
    }
}

Mais cela ne donne pas de résultats satisfaisants. Plus que fonctionne bien. J'utilise elasticsearch v6.3. S'il vous plaît aider avec la solution pour les deux valeurs inclusives et exclusives.

11
Rakmo

Renvoie les documents dont la valeur price est comprise entre 1000 et 2000 inclus.

{
    "query": {
        "range" : {
            "price" : {
                "gte" : 1000,
                "lte" : 2000
            }
        }
    }
}

Interrogation de plage

Correspond aux documents avec des champs dont les termes sont compris dans une certaine plage. Le type de la requête Lucene dépend du type de champ. Pour les champs de chaîne, TermRangeQuery, tandis que pour les champs de nombre/date, la requête est un NumericRangeQuery.

gte - Supérieur ou égal à

lte - Inférieur ou égal à

gt - Supérieur à

lt - Moins que

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html

16
Mikhail Kholodkov