Elasticsearch
Elasticsearch 是一个开源的、基于 Lucene 的搜索引擎。它提供了一个分布式的全文搜索引擎,具有 HTTP web 接口和无模式的 JSON 文档。Elasticsearch 是用 Java 开发的,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定、可靠、快速、安装使用方便。
主要功能包括:
- 分布式搜索:你可以在多个服务器上存储数据,Elasticsearch 会自动处理数据的分片和复制。
- 全文搜索:Elasticsearch 使用 Lucene 提供了强大的全文搜索能力。
- 实时搜索:Elasticsearch 可以在数据被添加或修改后几秒内进行搜索。
- 多租户:你可以在同一个 Elasticsearch 集群中存储多个索引,每个索引都有自己的命名空间。
- API:Elasticsearch 提供了丰富的 RESTful API,你可以使用这些 API 来创建、删除、更新、查询索引,以及执行许多其他操作。
在 Elasticsearch 中,字段类型(Field Types)被分为以下几种主要类别:
- 核心数据类型(Core data types):包括 text、keyword、numeric(如 integer、float)、date、boolean、binary 等。
- 复合数据类型(Complex data types):包括 object(用于单个 JSON 对象)和 nested(用于 JSON 数组)。
- 地理数据类型(Geo data types):包括 geo_point(用于经纬度坐标)和 geo_shape(用于复杂形状)。
- 特殊数据类型(Specialized data types):包括 IP、range(如 integer_range、date_range)、completion(用于自动完成建议)等。
- 数组数据类型(Array data types):任何类型的字段都可以包含多个值,但数组必须是同一类型。
使用kafka进行数据同步
Elasticsearch Sink Connector 是 Confluent 开发的一个 Kafka Connect 插件,用于将数据从 Kafka 流式传输到 Elasticsearch。