blob: 03b6583e7d2ca8c0fbc603c71f48dc6545144308 [file] [log] [blame] [view]
import ChangeLog from '../changelog/connector-easysearch.md';
# Easysearch
> Easysearch 源连接器
## 支持引擎
> Spark<br/>
> Flink<br/>
> SeaTunnel Zeta<br/>
## 描述
用于从INFINI Easysearch读取数据。
## 使用依赖
> 依赖 [easysearch-client](https://central.sonatype.com/artifact/com.infinilabs/easysearch-client)
## 关键特性
- [x] [批处理](../../concept/connector-v2-features.md)
- [ ] [流处理](../../concept/connector-v2-features.md)
- [ ] [精确一次](../../concept/connector-v2-features.md)
- [x] [列映射](../../concept/connector-v2-features.md)
- [ ] [并行度](../../concept/connector-v2-features.md)
- [ ] [支持用户自定义拆分](../../concept/connector-v2-features.md)
:::提示
支持的引擎
* 支持发布的所有版本 [INFINI Easysearch](https://www.infini.com/download/?product=easysearch).
## 数据类型映射
| Easysearch 数据类型 | SeaTunnel 数据类型 |
|-----------------------------|----------------------|
| STRING<br/>KEYWORD<br/>TEXT | STRING |
| BOOLEAN | BOOLEAN |
| BYTE | BYTE |
| SHORT | SHORT |
| INTEGER | INT |
| LONG | LONG |
| FLOAT<br/>HALF_FLOAT | FLOAT |
| DOUBLE | DOUBLE |
| Date | LOCAL_DATE_TIME_TYPE |
### hosts [array]
Easysearch集群http地址,格式为“host:port”,允许指定多个主机。例如`[“host1:9200”,“host2:9200”]`
### username [string]
安全用户名。
### password [string]
安全密码。
### index [string]
Easysearch搜索索引名称,支持*模糊匹配。
### source [array]
索引字段。
您可以通过指定字段“_id”来获取文档id。如果sink_id指向其他索引,由于Easysearch的限制,您需要为_id指定一个别名。
若不配置源代码,则必须配置`schema`
### query [json]
Easysearch DSL.
您可以控制读取数据的范围。
### scroll_time [String]
Easysearch将为滚动请求保持搜索上下文活动的时间量。
### scroll_size [int]
每次Easysearch滚动请求返回的最大请求数。
### schema
数据的结构,包括字段名和字段类型。
如果不配置schema,则必须配置`source`
### tls_verify_certificate [boolean]
HTTPS端点启用证书验证
### tls_verify_hostname [boolean]
HTTPS端点启用主机名验证
### tls_keystore_path [string]
PEMJKS密钥存储的路径。运行SeaTunnel的操作系统用户必须能够读取此文件。
### tls_keystore_password [string]
指定密钥存储的密钥密码
### tls_truststore_path [string]
PEMJKS信任存储的路径。运行SeaTunnel的操作系统用户必须能够读取此文件.
### tls_truststore_password [string]
指定的信任存储的密钥密码
### common options
Source插件常用参数,详见[Source common Options](../source-common-options.md
## 示例
简单的例子
```hocon
Easysearch {
hosts = ["localhost:9200"]
index = "seatunnel-*"
source = ["_id","name","age"]
query = {"range":{"firstPacket":{"gte":1700407367588,"lte":1700407367588}}}
}
```
复杂的例子
```hocon
Easysearch {
hosts = ["Easysearch:9200"]
index = "st_index"
schema = {
fields {
c_map = "map<string, tinyint>"
c_array = "array<tinyint>"
c_string = string
c_boolean = boolean
c_tinyint = tinyint
c_smallint = smallint
c_int = int
c_bigint = bigint
c_float = float
c_double = double
c_decimal = "decimal(2, 1)"
c_bytes = bytes
c_date = date
c_timestamp = timestamp
}
}
query = {"range":{"firstPacket":{"gte":1700407367588,"lte":1700407367588}}}
}
```
SSL (禁用证书验证)
```hocon
source {
Easysearch {
hosts = ["https://localhost:9200"]
username = "admin"
password = "admin"
tls_verify_certificate = false
}
}
```
SSL (禁用主机名验证)
```hocon
source {
Easysearch {
hosts = ["https://localhost:9200"]
username = "admin"
password = "admin"
tls_verify_hostname = false
}
}
```
SSL (启用证书验证)
```hocon
source {
Easysearch {
hosts = ["https://localhost:9200"]
username = "admin"
password = "admin"
tls_keystore_path = "${your Easysearch home}/config/certs/http.p12"
tls_keystore_password = "${your password}"
}
}
```
## 变更日志
<ChangeLog />