FastReport .NET-, Core-, Mono-, OpenSource-Produkte können jetzt eine Verbindung zu Elasticsearch herstellen. Elasticsearch ist ein skalierbares Dienstprogramm für die Volltextsuche und -analyse, mit dem Sie große Datenmengen schnell und nahezu in Echtzeit speichern, suchen und analysieren können.
Daten im JSON-Format können von Elasticsearch abgerufen werden. Und FastReport .NET hat bereits eine JSON-Verbindung und es ist ziemlich bequem, die Daten in diesem Format zu verwenden. Daher wird dieses Format als Zwischenlage zwischen FastReport .NET und Elasticsearch verwendet.
Wichtig! In FastReport ist nur die Elasticsearch-Verbindung als Datenquelle implementiert, ohne die Möglichkeit, in den darin gespeicherten Daten zu suchen.
Um die Verbindung zu Elasticsearch herzustellen, klicken Sie im Designer auf die Registerkarte "Daten" und wählen Sie "Datenquelle hinzufügen". In dem erscheinenden Fenster klicken Sie auf die Schaltfläche «Neue Verbindung». Für die Verbindung ist “endpoint Elasticsearch” erforderlich und für den Datenzugriff sind die Kopfzeilen, wie z. B. Autorisierungsdaten (dazu gibt es unten ein Raster) anzugeben. Wurde der Zugriff auf die Daten erhalten, erscheint nach dem Klicken auf die Schaltfläche "Weiter" eine Liste von Tabellen. Für eine erfolgreiche Verbindung markieren Sie das Kästchen links neben dem Tabellennamen. Danach ist die Verbindungskonfigurierung abgeschlossen.
Sobald eine Datenquelle verbunden ist, müssen Sie ein Band daran binden.
Der resultierende Bericht verwendet die Daten aus der erstellten Verbindung zu Elasticsearch.
Wenn Sie Daten für die Verbindung auswählen möchten, können Sie eine GET-Anfrage stellen und diese als JSON-Verbindungszeichenfolge verwenden. Das folgende Beispiel zeigt eine Suche nach Datensätzen, die das Wort "Bruno" im Feld "Name" enthalten und sich im Index (so werden Tabellen in Elasticsearch genannt) "demo" befinden. Wenn mehr als 10 Datensätze vorhanden sind, müssen Sie den Parameter "size" hinzufügen und darin die gewünschte Anzahl von Datensätzen angeben.
Zudem müssen Sie im Bericht den Namen der Datenquelle in der DataSource-Eigenschaft des Bandes angeben und danach werden die Daten aus der Quelle für den Bericht abgerufen.
Beispiel für die Verbindung zu Elasticsearch mit dem Code:
// create ESDataSourceConnectionStringBuilder instance ESDataSourceConnectionStringBuilder builder = new ESDataSourceConnectionStringBuilder(); // set Elasticsearh end point builder.EndPoint = "http://192.168.1.194:9200/"; // create ESDataSourceConnection instance var connection = new ESDataSourceConnection(); //set connection string connection.ConnectionString = builder.ConnectionString; // init all table connection.CreateAllTables(); // set name connection connection.Name = "NewConnection"; // create Report instance var report = new Report(); // add connection to report report.Dictionary.Connections.Add(connection); // set connection show connection.Enabled = true; // choose table with name "demo" and connect it to the report foreach(TableDataSource table in connection.Tables) { if (table.Name == "demo") table.Enabled = true; }
Nach der Ausführung dieses Codes wird die neue Tabelle "demo" im Designer in der Liste der verfügbaren Verbindungen angezeigt.
Jetzt wissen Sie mehr über die Optionen der Herstellung einer Verbindung zur Elasticsearch-Datenbank. Wenn Sie Daten auswählen möchten, können Sie die JSON-Verbindung verwenden.