Ich versuche, Dokumente aus einer Postgres-Ansicht und in Logstash über Elasticsearch zu indizieren. Die Aussage, ein Teil meiner Konfigurationsdatei sieht wie folgt aus:Logstash JSON-Filter scheint nicht mit JDBC-Eingabe zu arbeiten
select search_document FROM my_view;
Die nächste Zeile in meiner config-Datei ist, wo ich versuche, den Wert aus der Datenbank-Aufruf zu extrahieren:
filter {
json {
source => "[search_document][value]"
}
}
Dies sollte wählen der Wert der Spalte und dann direkt in Elasticsearch (oder in dieser Testphase, stdout); es funktioniert jedoch nicht ordnungsgemäß. Ich habe oben verschiedene Varianten des Zugriffs auf Eigenschaften ausprobiert und fügt immer Dokumente mit "search_document" als Schlüssel und dem Rest des JSON-Dokuments als Wert ein.
Gibt es etwas, was ich falsch mache?
Bearbeiten: Ich habe meine Ansicht aktualisiert, um eine select search_document::text FROM my_view;
basierend auf einer anderen Antwort, die ich gefunden habe durchzuführen. Der ursprüngliche Typ der Spalte ist JSONB und die Daten in der Zeile sieht wie folgt aus:
{ "value" : { "key_1": "hello", "key_2": "world" } }
hinzufügen Können Sie das Format der Zeilen einfügen, die Sie auswählen? –
Sicher, siehe oben. – sean