Elasticsearch Clients für Python, keine Lösung

8

Ich habe eine sehr schlechte Woche, nachdem ich elasticsearch mit graylog2 gewählt habe. Ich versuche, Abfragen auf die Daten in ES mit Python auszuführen.

Ich habe folgende Kunden versucht.

  1. ESClient - Sehr seltsame Ergebnisse, ich denke, es ist nicht gepflegt, query_body hat keine Wirkung, es gibt alle Ergebnisse zurück.
  2. Bilder - Unlesbar, undokumentiert. Ich habe Quellen durchsucht und kann nicht herausfinden, wie man eine einfache Abfrage ausführt, vielleicht bin ich einfach nicht so schlau. Ich kann sogar Base-Abfragen im JSON-Format ausführen und dann einfach das Python-Objekt / die Iteratoren verwenden, um meine Analyse der Ergebnisse durchzuführen. Aber Pyes macht es nicht einfach.
  3. Elasticutils - Ein weiteres dokumentiert, aber ohne eine vollständige Probe. Ich erhalte den folgenden Fehler mit angehängtem Code. Ich weiß nicht einmal, wie es dieses S () verwendet, um sich mit dem richtigen Host zu verbinden?

    es = get_es (Rechner = HOST, default_indexes = [INDEX])

    basic_s = S (). Indizes (INDEX) .doctypes (DOCTYPE) .values_dict ()

Ergebnisse:

%Vor%

Ich wünsche den Entwicklern dieser guten Projekte einige vollständige Beispiele. Selbst wenn ich auf Quellen schaue, bin ich kein vollständiger Verlust.

Gibt es eine Lösung, helft mir da draußen mit elasticsearch und python oder soll ich einfach all das fallen lassen und für ein nettes splunk-Konto bezahlen und dieses Elend beenden.

Ich fahre mit curl fort, lade das gesamte json-Ergebnis herunter und json lade es. Hoffe, dass funktioniert, obwohl curl Herunterladen von 1 Million Nachrichten von elasticsearch möglicherweise nicht einfach passieren.

    
Vangel 03.08.2012, 13:47
quelle

6 Antworten

7

Ehrlich gesagt, hatte ich das meiste Glück mit CURLing alles. ES hat so viele verschiedene Methoden, Filter und Abfragen, dass es für verschiedene "Wrapper" schwierig ist, alle Funktionen neu zu erstellen. Meiner Ansicht nach ist es vergleichbar mit der Verwendung eines ORM für Datenbanken ... Was Sie an Benutzerfreundlichkeit gewinnen, Sie verlieren an Flexibilität / roher Macht.

Außer die meisten Wrapper für ES sind nicht wirklich so einfach zu bedienen.

Ich würde CURL eine Weile versuchen und sehen, wie es dich behandelt. Sie können externe JSON-Formatierer verwenden, um Ihren JSON zu überprüfen, die Mailingliste, um nach Beispielen zu suchen, und die Dokumente sind in Ordnung, wenn Sie JSON verwenden.

    
Zach 03.08.2012, 15:01
quelle
8

Ich habe gefunden, dass Rohe ziemlich brauchbar sind: Ссылка

Es ist eine eher Low-Level-Schnittstelle, aber ich habe festgestellt, dass es viel weniger umständlich ist, damit zu arbeiten als die High-Level-Schnittstellen. Es unterstützt auch den Thrift RPC, wenn Sie daran interessiert sind.

    
Lars Hansson 11.09.2012 00:32
quelle
7

Das explizite Festlegen des Hosts hat diesen Fehler für mich aufgelöst:

basic_s = S() .es(hosts=HOST, default_indexes=[INDEX])

    
tentpole 13.11.2012 23:54
quelle
4

FWIW, PYES Dokumente sind hier: Ссылка

Verwendung: Ссылка

    
dan 06.08.2012 22:12
quelle
3

ElasticSearch vor kurzem (September 2013) hat einen offiziellen Python veröffentlicht Kunde elasticsearch-py (Elasticsearch auf PyPI, auch auf < a href="https://github.com/elasticsearch/elasticsearch-py"> github ), das eine ziemlich direkte Zuordnung zum offiziellen ElasticSearch-API sein soll. Ich habe es noch nicht benutzt, aber es sieht vielversprechend aus, und es wird zumindest den offiziellen Dokumenten entsprechen!

Edit: Wir haben angefangen, es zu benutzen, und ich bin sehr glücklich damit. Die API von ElasticSearch ist ziemlich sauber und elasticsearch-py behält dies bei. Einfacher zu arbeiten und zu debuggen im Allgemeinen, plus anständige Protokollierung.

    
Hwesta 10.02.2014 19:20
quelle
2

ElasticUtils hat Beispielcode: Ссылка

Wenn Sie andere Dinge in den Dokumenten benötigen, fragen Sie einfach.

    
user1580130 06.08.2012 19:14
quelle

Tags und Links