lima-city: Webhosting, Domains und Cloud
2 Pluspunkte 0 Minuspunkte

Ich mache über einen Flask Server Abfragen in Elasticsearch und bis jetzt funktioniert auch alles. Jetzt will ich einen neuen Endpunkt (Flask) hinzufügen um Details zu einem einzelnen Ergebnis anzuzeigen. Das ist die Flask Funktion.

@app.route("/hit/<hit_id>", methods=["GET"])
def get_hit(hit_id):
    index = request.args.get("index", "*winlog*")  
    try:
        result = es.get(index=index, id=hit_id)
        return jsonify(result)
    except Exception as e:
        return jsonify({"error": str(e)}), 404

Ich bekomme aber immer einen HTTP 404 Fehler. Was mache ich falsch?

von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Weil eine Abfrage auf das Feld _id mit es.get() nur funktioniert, wenn du den genauen Index kennst. Da du wahrscheinlich mehrere Indizes hast (winlog*), musst du stattdessen eine search Abfrage machen.

@app.route("/hit/<hit_id>", methods=["GET"])
def get_hit(hit_id):
    index = "winlogbeat-*"  # Falls du mehrere Indizes hast

    query = {
        "query": {
            "term": {
                "_id": hit_id
            }
        }
    }

    try:
        result = es.search(index=index, body=query)
        if result["hits"]["total"]["value"] > 0:
            return jsonify(result["hits"]["hits"][0])  # Ersten Treffer zurückgeben
        else:
            return jsonify({"error": "Kein Dokument gefunden"}), 404
    except Exception as e:
        return jsonify({"error": str(e)}), 500
von (720 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Fragen und Antworten bewerten
  • Themen von Fragen bearbeiten
  • Fragen, Antworten und Kommentare bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft.

2.3k Fragen

2.8k Antworten

265 Kommentare

14 Nutzer