1 个不稳定版本
0.1.0 | 2024 年 2 月 17 日 |
---|
#2146 在 数据库接口
2.5MB
61K SLoC
Rust 的强类型 OpenSearch 客户端
这是一个高级库,提供了一个强类型 DSL,与官方 OpenSearch 查询 DSL 一一对应。这是基于 https://github.com/vinted/elasticsearch-dsl-rs 的 Opensearch 衍生版本
功能
- 强类型请求和响应
- 流式批量处理
- 流式响应
- 备份/还原客户端的初始实现
- 基于 Vinted 的 Elasticsearch 查询 DSL 的全类型查询
- 展示不同代码用法的全面测试
安装
在 Cargo.toml 中添加 opensearch-client
crate 和版本
[dependencies]
opensearch-client = {version="0.1.0", features=["indices"]}
每个功能都是可选的,可以根据需要启用或禁用。以下功能可用
- 默认:没有启用功能
- 全部:启用所有功能
- quickwit:启用 quickwit 兼容性
- 搜索
- cat
- 集群
- 索引:也启用 ["搜索"]
- 摄入
- 节点
- mtermvectors
- 机器学习
- 远程
- 安全
- 快照
- 任务
- 工具:启用 "索引"、"摄入"、"机器学习"
文档
该库的文档可在 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 服务器地址 (默认: https://127.0.0.1:9200)
- OPENSEARCH_USER:OpenSearch 服务器默认用户 (默认: admin)
- OPENSEARCH_PASSWORD:OpenSearch 服务器默认密码 (默认: admin)
更多示例请参阅 示例
许可
根据您的选择,许可协议为 Apache 许可证,版本 2.0 或 MIT 许可证依赖关系
~11–25MB
~391K SLoC