GOOGLE ADS

lundi 25 avril 2022

Comment effectuer une recherche élastique en python au cours des dernières 24 heures?

Je souhaite récupérer des données de recherche élastiques en python. J'utilise le code suivant:

 es = Elasticsearch(['https://es-host/'],
http_auth=(username, password))
# get last 24h pm25 data
query = {
"range": {"TimeStamp": {"gte": "now-8d/d", "lte": "now/d", "format": "epoch_millis"}}
}
result = es.search(index="test-dev", q="pm25", body=
{
"query": query
}
)

Cependant, les données que j'obtiens ne proviennent pas des dernières 24 heures. Les horodatages contiennent des données de 1611506930000, soit le 24 janvier 2021. Comment puis-je corriger la requête pour obtenir uniquement les données des dernières 24 heures pour les valeurs pm2.5 ?


Solution du problème

Here you are trying to get the data for the last 8 days (with now-8d/d). It is weird though that you are retrieving data from january.
Furthermore, your query format is wrong.
You want to filter your results using your range, which translates in elastic search queries by:

query = {
"bool": {
"must": [
{
"range": {
"Timestamp": {
"gte": "now-24h",
"lt": "now"
}
}
}
]
}

}

Vérifiez également que l'horodatage de votre champ porte le nom correct.

Aucun commentaire:

Enregistrer un commentaire

Comment utiliseriez-vous .reduce() sur des arguments au lieu d'un tableau ou d'un objet spécifique ?

Je veux définir une fonction.flatten qui aplatit plusieurs éléments en un seul tableau. Je sais que ce qui suit n'est pas possible, mais...