1 个不稳定版本
0.1.0 | 2024年2月17日 |
---|
#1599 在 数据库接口
9KB
96 行
为 Rust 定制的 OpenSearch 客户端
一个高级库,提供强类型 DSL,与官方 OpenSearch 查询 DSL 一对一映射。这是基于 https://github.com/vinted/elasticsearch-dsl-rs 的 OpenSearch 分支
功能
- 强类型请求和响应
- 流式 Bulker
- 流式响应
- 备份/还原客户端的初始实现
- 基于 Vinted 的 ElasticSearch 查询 DSL 的完整类型查询
- 展示不同代码用法的详尽测试
安装
将 opensearch-client
crate 和版本添加到 Cargo.toml
[dependencies]
opensearch-client = {version="0.1.0", features=["indices"]}
每个功能都是可选的,可以根据需要启用或禁用。以下功能可用:
- 默认:未启用功能
- 完整:启用所有功能
- quickwit:启用 quickwit 兼容性
- 搜索
- cat
- 集群
- 索引:也启用 ["搜索"]
- 摄取
- 节点
- mtermvectors
- 机器学习
- 远程
- 安全
- 快照
- 任务
- 工具:启用 "indices","ingest","ml"
文档
库的文档可在 docs.rs 上找到
快速入门
mod tests {
use serde_json::json;
use testcontainers::clients;
use opensearch_testcontainer::*;
use tracing_test::traced_test;
use crate::{url::Url, OsClientBuilder};
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
#[traced_test]
async fn bulker_ingester() -> Result<(), Box<dyn std::error::Error>> {
let docker = clients::Cli::default();
let os_image = OpenSearch::default();
let node = docker.run(os_image.clone());
let host_port = node.get_host_port_ipv4(9200);
let client = OsClientBuilder::new()
.accept_invalid_certificates(true)
.base_url(Url::parse(&format!("https://127.0.0.1:{host_port}")).unwrap())
.basic_auth(os_image.username(), os_image.password())
.build();
let test_size: u32 = 100000;
let bulker = client.bulker().bulk_size(1000).max_concurrent_connections(10).build();
for i in 0..test_size {
bulker
.index("test", &json!({"id":i}), Some(i.to_string()))
.await
.unwrap();
}
bulker.flush().await;
let statitics = bulker.statistics();
drop(bulker);
assert_eq!(statitics.index_actions, test_size as u64);
assert_eq!(statitics.create_actions, 0);
assert_eq!(statitics.delete_actions, 0);
assert_eq!(statitics.update_actions, 0);
client.indices().refresh_post().send().await.unwrap();
let count = client.count().index("test").send().await.unwrap().into_inner();
assert_eq!(count.count, test_size);
Ok(())
}
}
如果可用,以下环境变量将被使用:
- OPENSEARCH_URL:OpenSearch 服务器 URL(默认:https://127.0.0.1:9200)
- OPENSEARCH_USER:OpenSearch 服务器默认用户(默认:admin)
- OPENSEARCH_PASSWORD:OpenSearch 服务器默认密码(默认:admin)
更多信息请参阅 示例。
许可
根据您的选择,许可协议为 Apache 许可证,版本 2.0 或 MIT 许可证。依赖项
~3–4.5MB
~87K SLoC