Flutter Elasticsearch服务插件pip_services4_elasticsearch的使用

Flutter Elasticsearch服务插件pip_services4_elasticsearch的使用

该模块是Pip.Services多语言微服务工具包的一部分。

ElasticSearch模块包含在ElasticSearch服务器上存储数据的日志组件。

该模块包含以下软件包:

  • Build - 包含用于构建组件的工厂
  • Log - 日志组件

使用

在你的项目的pubspec.yaml文件中添加以下依赖项:

dependencies:
  pip_services4_elasticsearch: ^版本号

现在你可以从命令行安装包:

flutter packages get

微服务组件应使用CompositeLogger组件进行常规日志记录。CompositeLogger将从引用中获取ElasticSearchLogger,并会将日志消息重定向到其他目标。

class MyComponent implements IConfigurable, IReferenceable {
  CompositeLogger _logger = new CompositeLogger();
  
  void configure(ConfigParams config) {
    this._logger.configure(config);
  }
  
  void setReferences(IReferences refs) {
    this._logger.setReferences(refs);
  }
  
  void myMethod(IContext? context, param1) {
    this._logger.trace(context, "Executed method mycomponent.mymethod");
    // 其他代码...
  }
}

配置包含ElasticSearch日志记录器的微服务可能如下所示:

...
{{#if ELASTICSEARCH_ENABLED}}
- descriptor: pip-services:logger:elasticsearch:default:1.0
  connection:
    uri: {{{ELASTICSEARCG_SERVICE_URI}}}
    host: {{{ELASTICSEARCH_SERVICE_HOST}}}{{#unless ELASTICSEARCH_SERVICE_HOST}}localhost{{/unless}}
    port: {{ELASTICSEARCG_SERVICE_PORT}}{{#unless ELASTICSEARCH_SERVICE_PORT}}9200{{/unless}}\ 
{{/if}}
...

开发

开发时你需要安装以下前置条件:

  • Dart SDK 3
  • Visual Studio Code 或其他你选择的IDE
  • Docker

安装依赖项:

flutter packages get

运行自动化测试:

flutter packages run test

生成API文档:

./docgen.ps1

在提交更改之前,运行docker化的构建和测试:

./build.ps1
./test.ps1
./clear.ps1

联系方式

该库由以下人员创建和维护:

  • Sergey Seroukhov
  • Levichev Dmitry

文档由以下人员编写:

  • Mark Makarychev
  • Levichev Dmitry

完整示例Demo

以下是一个完整的示例Demo,展示了如何使用ElasticSearch日志记录器。

import 'dart:io';

import 'package:pip_services4_commons/pip_services4_commons.dart';
import 'package:pip_services4_components/pip_services4_components.dart';
import 'package:pip_services4_elasticsearch/pip_services4_elasticsearch.dart';
import 'package:pip_services4_observability/pip_services4_observability.dart';

void main() async {
  var host = Platform.environment['ELASTICSEARCH_SERVICE_HOST'] ?? 'localhost';
  var port = Platform.environment['ELASTICSEARCH_SERVICE_PORT'] ?? 9200;
  var dateFormat = 'yyyyMMdd';

  var _logger = ElasticSearchLogger();

  var config = ConfigParams.fromTuples([
    'source',
    'test',
    'index',
    'log',
    'daily',
    true,
    'date_format',
    dateFormat,
    'connection.host',
    host,
    'connection.port',
    port
  ]);
  _logger.configure(config);

  await _logger.open(null);

  _logger.setLevel(LogLevel.Trace);
  _logger.fatal(null, null, 'Fatal error message');
  _logger.error(null, null, 'Error message');
  _logger.warn(null, 'Warning message');
  _logger.info(null, 'Information message');
  _logger.debug(null, 'Debug message');
  _logger.trace(null, 'Trace message');

  try {
    // 引发异常
    throw Exception('Test error');
  } catch (err) {
    var ex = ApplicationException().wrap(err);
    _logger.fatal(Context.fromTraceId('123'), ex, 'Fatal error');
    _logger.error(Context.fromTraceId('123'), ex, 'Recoverable error');
  }

  _logger.dump();

  await _logger.close(null);
}

更多关于Flutter Elasticsearch服务插件pip_services4_elasticsearch的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter Elasticsearch服务插件pip_services4_elasticsearch的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


pip_services4_elasticsearch 是一个用于在 Flutter 应用中与 Elasticsearch 进行交互的插件。它提供了一组组件和工具,帮助开发者轻松地在 Flutter 应用中集成 Elasticsearch 服务。

以下是使用 pip_services4_elasticsearch 插件的基本步骤:

1. 安装依赖

首先,你需要在 pubspec.yaml 文件中添加 pip_services4_elasticsearch 插件的依赖:

dependencies:
  pip_services4_elasticsearch: ^1.0.0

然后运行 flutter pub get 来安装依赖。

2. 配置 Elasticsearch 连接

在你的 Flutter 应用中,你需要配置 Elasticsearch 的连接信息。通常,你需要提供 Elasticsearch 的 URI 和认证信息(如果需要)。

import 'package:pip_services4_elasticsearch/elasticsearch/ElasticSearchConnection.dart';

void main() async {
  var connection = ElasticSearchConnection(
    uri: 'http://localhost:9200',
    username: 'your_username',
    password: 'your_password',
  );

  await connection.open(null);
}

3. 使用 Elasticsearch 服务

一旦配置好连接,你就可以使用 ElasticSearchService 来与 Elasticsearch 进行交互。以下是一个简单的示例,演示如何索引和搜索文档:

import 'package:pip_services4_elasticsearch/elasticsearch/ElasticSearchService.dart';

void main() async {
  var service = ElasticSearchService();

  // 配置服务
  service.configure(ConfigParams.fromTuples([
    'connection.uri', 'http://localhost:9200',
    'connection.username', 'your_username',
    'connection.password', 'your_password',
  ]));

  // 打开服务
  await service.open(null);

  // 索引文档
  await service.index('my_index', 'my_type', '1', {'field': 'value'});

  // 搜索文档
  var result = await service.search('my_index', {
    'query': {
      'match': {
        'field': 'value'
      }
    }
  });

  print(result);

  // 关闭服务
  await service.close(null);
}

4. 处理错误和日志

pip_services4_elasticsearch 提供了日志记录和错误处理的功能。你可以使用 CompositeLoggerCompositeCounters 来记录日志和统计信息。

import 'package:pip_services4_components/log/CompositeLogger.dart';
import 'package:pip_services4_components/count/CompositeCounters.dart';

void main() async {
  var logger = CompositeLogger();
  var counters = CompositeCounters();

  var service = ElasticSearchService();
  service.setReferences(References.fromTuples([
    Descriptor('pip-services', 'logger', 'console', 'default', '1.0'), logger,
    Descriptor('pip-services', 'counters', 'log', 'default', '1.0'), counters,
  ]));

  // 打开服务
  await service.open(null);

  // 使用服务...

  // 关闭服务
  await service.close(null);
}
回到顶部