Подключение к Elasticsearch

10.11.2021

Теперь в продуктах FastReport .NET, Core, Mono, OpenSource появилась возможность подключения к Elasticsearch. Elasticsearch – масштабируемая утилита полнотекстового поиска и аналитики, которая позволяет быстро в режиме реального времени хранить, искать и анализировать большие объемы данных.

Из Elasticsearch можно получить данные в формате JSON. А в FastReport .NET уже есть подключение к JSON и использовать данные в этом формате довольно удобно. Поэтому этот формат будет использоваться в качестве прослойки между FastReport .NET и Elasticsearch.

Важно! В FastReport реализовано только подключение Elasticsearch, как источника данных, без возможности поиска в хранимых внутри него данных.

Для создания подключения к Elasticsearch нужно кликнуть на вкладку «Данные» в дизайнере, выбрать пункт «Добавить источник данных». В появившемся окне нажать на кнопку «Новое подключение». Для подключения необходим “endpoint Elasticsearch” и указание заголовков для доступа к данным, например, авторизационные данные (для этого есть сетка ниже). Если доступ к данным был получен, то после нажатия кнопки «Далее» появится список таблиц. Необходимо поставить галочку, которая находится левее названия таблицы для успешного подключения. После этого настройка подключения будет завершена.

Подключение к Elasticsearch

После подключения источника данных необходимо привязать к нему бэнд.

Шаблон отчета с использованием подключения к ElasticSearch

В итоге в отчете будут использованы данные из созданного подключения к Elasticsearch.

Подготовленный отчет с данными из подключения к ElasticSearch

Если необходимо отобрать данные для подключения, то можно составить GET запрос и использовать его как строку подключения к JSON. В примере ниже показан поиск записей, которые содержат в поле «name» слово «Bruno» и находятся в индексе (так называются таблицы в Elasticsearch) «demo». Также если записей будет больше 10, то необходимо будет добавить параметр «size» и указать в нем нужное количество записей.

Подключение к JSON

Также в отчете нужно указать имя источника данных в свойстве DataSource бэнда и после этого данные будут извлекаться из источника в отчет.

Шаблон отчета с использованием подключения к JSON

Подготовленный отчет с данными из подключения к JSON

Пример подключения к Elasticsearch из кода:

// 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;
}

В результате выполнения этого кода мы сможем увидеть в дизайнере новую таблицу «demo» в списке доступных подключений.

Таблица «demo» в списке доступных подключений

Теперь вы больше знаете о возможностях создания подключения к базе данных Elasticsearch. При необходимости отбора данных можете воспользоваться подключением к JSON.

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.