Skip to main content

Elasticsearch

Elasticsearch 是一个开源的、基于 Lucene 的搜索引擎。它提供了一个分布式的全文搜索引擎,具有 HTTP web 接口和无模式的 JSON 文档。Elasticsearch 是用 Java 开发的,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定、可靠、快速、安装使用方便。

主要功能包括:

  1. 分布式搜索:你可以在多个服务器上存储数据,Elasticsearch 会自动处理数据的分片和复制。
  2. 全文搜索:Elasticsearch 使用 Lucene 提供了强大的全文搜索能力。
  3. 实时搜索:Elasticsearch 可以在数据被添加或修改后几秒内进行搜索。
  4. 多租户:你可以在同一个 Elasticsearch 集群中存储多个索引,每个索引都有自己的命名空间。
  5. API:Elasticsearch 提供了丰富的 RESTful API,你可以使用这些 API 来创建、删除、更新、查询索引,以及执行许多其他操作。

在 Elasticsearch 中,字段类型(Field Types)被分为以下几种主要类别:

  1. 核心数据类型(Core data types):包括 text、keyword、numeric(如 integer、float)、date、boolean、binary 等。
  2. 复合数据类型(Complex data types):包括 object(用于单个 JSON 对象)和 nested(用于 JSON 数组)。
  3. 地理数据类型(Geo data types):包括 geo_point(用于经纬度坐标)和 geo_shape(用于复杂形状)。
  4. 特殊数据类型(Specialized data types):包括 IP、range(如 integer_range、date_range)、completion(用于自动完成建议)等。
  5. 数组数据类型(Array data types):任何类型的字段都可以包含多个值,但数组必须是同一类型。

使用kafka进行数据同步

Elasticsearch Sink Connector 是 Confluent 开发的一个 Kafka Connect 插件,用于将数据从 Kafka 流式传输到 Elasticsearch。

https://docs.confluent.io/kafka-connectors/elasticsearch/current/configuration_options.html#elasticsearch-overview-config