Teraz produkty FastReport .NET, Core, Mono i OpenSource umożliwiają łączenie się z Elasticsearch. Elasticsearch to skalowalny program narzędziowy do pełnotekstowego wyszukiwania i analizy, który umożliwia przechowywanie, wyszukiwanie i analizowanie dużych ilości danych z dużą szybkością i w trybie czasu rzeczywistego.
Dane można uzyskać w formacie JSON z Elasticsearch. FastReport .NET ma połączenie z JSON i jest to całkiem wygodne, aby korzystać z danych w tym formacie. Dlatego ten format będzie używany jako middleware pomiędzy FastReport .NET i Elasticsearch.
Ważna uwaga! FastReport implementuje tylko podłączenie do Elasticsearch jako źródła danych, bez możliwości przewyszukiwania danych znajdujących się w nim.
Aby nawiązać połączenie z Elasticsearch kliknij na zakładkę Dane w kreatorze i wybierz polecenie Dodaj źródło danych. W oknie, które się pojawi kliknij na Nowe połączenie. Do połączenia potrzebny będzie endpoint Elasticsearch oraz wskazanie tytułów dostępu do danych, np. dane autoryzacyjne (poniżej znajduje się schemat do tego). Jeśli dostęp do danych zostanie przyznany, po kliknięciu przycisku Next pojawi się lista tabel. Dla pomyślnego połączenia należy zaznaczyć po lewej stronie tytułu tabeli. W ten sposób ustawianie połączenia zostanie zakończone.
Po podłączeniu źródła danych, należy podłączyć do niego zespół.
W efekcie raport będzie wykorzystywał dane z utworzonego połączenia do Elasticsearch.
Jeśli potrzebujesz wybrać dane do połączenia, możesz wykonać zapytanie GET i użyć go jako ciąg połączenia JSON. W poniższym przykładzie możesz zobaczyć wyszukiwanie rekordów zawierających słowo Bruno w polu name i znajdujących się w indeksie demo (są to nazwy tabeli w Elasticsearch). Ponadto, jeśli rekordów jest więcej niż 10, należy dodać parametr size i podać w nim potrzebną liczbę rekordów.
W raporcie należy również wskazać nazwę źródła danych we właściwości zespołu DataSource; wtedy dane zostaną pobrane ze źródła do raportu.
Przykład połączenia z Elasticsearch z poziomu kodu:
// Utwórz instancję Datasource ConnectionStringBuilder ESDataSourceConnectionStringBuilder builder = new ESDataSourceConnectionStringBuilder(); // set Elasticsearch endpoint builder.EndPoint = "http://192.168.1.194:9200/"; // tworzenie instancji połączenia ES Data Source var connection = new ESDataSourceConnection(); //Ustaw ciąg połączenia connection.ConnectionString = builder.ConnectionString; // in it all table connection.CreateAllTables(); // Ustaw połączenie nazw connection.Name = "NewConnection"; // Utwórz instancję raportu var report = new Report(); // Dodaj połączenie do raportu report.Dictionary.Connections.Add(connection); // Ustaw pokaz połączenia connection.Enabled = true; // wybierz tabelę o nazwie "demo" i podłącz ją do raportu foreach(TableDataSource table in connection.Tables) { if (table.Name == "demo") table.Enabled = true; }
ten kod, będziemy mogli zobaczyć nową tabelę "demo" w Projektancie w liście dostępnych połączeń.
Teraz wiesz już więcej o możliwościach tworzenia połączenia z bazą Elasticsearch. Jeśli potrzebujesz wybrać dane, możesz skorzystać z połączenia do JSON.