Ich weiß, dass es mehrere alternative elasticsearch Clients für Python über this one gibt. Ich habe jedoch keinen Zugriff darauf. Wie kann ich eine Abfrage schreiben, die für einen Zeitstempel eine "weniger als oder gleich" Logik hat? Meine heutige Art und Weise, dies zu tun ist:Python elasticsearch Bereich Abfrage
query = group_id:" + gid + '" AND data_model.fields.price:' + price
less_than_time = # datetime object
data = self.es.search(index=self.es_index, q=query, size=searchsize)
hits = data['hits']['hits']
results = []
for hit in hits:
time = datetime.strptime(hit['_source']['data_model']['utc_time'], time_format)
dt = abs(time - less_than_time).seconds
if dt <= 0:
results.append(hit)
Dies ist eine wirklich ungeschickt Art und Weise tun. Gibt es eine Möglichkeit, meine Abfragegenerierung mithilfe von Zeichenfolgen zu halten und einen Bereich einzuschließen?
Haben Sie nur die Abfrage wollen:
Dies kann und eine Abfrage spuckt wie genannt werden? Ich habe ein kleines Skript, das eine gültige Abfrage (für mich) erzeugt, die ich mit es2csv verwende. Es generiert eine korrekte JSON-Abfrage – pandaadb
@pandaadb ja, ich brauche nur Code, um die Abfrage zu generieren. Grundsätzlich die Möglichkeit, Abfragen basierend auf 'lte' oder 'gte' Bedingungen zu generieren. –