概述
编辑概述
编辑这是 Elasticsearch 的官方 Rust 客户端。完整文档托管在 docs.rs 上——此页面仅提供概述。
更多资源
特性
编辑- 所有 Elasticsearch REST API 端点的流畅构建器
- 持久保持活动连接
- 使用系统或自定义证书的 TLS 支持
- 带身份验证的代理支持
- 使用 Tokio 的异步支持
Elasticsearch 版本兼容性
编辑Elasticsearch Rust 客户端是向前兼容的;这意味着客户端支持与更高次要版本的 Elasticsearch 通信。Elasticsearch 语言客户端也向后兼容较低支持的次要 Elasticsearch 版本。
创建客户端
编辑要创建客户端以对在 \https://127.0.0.1:9200
上运行的 Elasticsearch 进行 API 调用
let client = Elasticsearch::default();
或者,您可以创建一个客户端来对在特定 url::Url
上运行的 Elasticsearch 进行 API 调用
let transport = Transport::single_node("https://example.com")?; let client = Elasticsearch::new(transport);
如果您在 Elastic Cloud 中针对 Elasticsearch 部署运行,则可以使用 Cloud ID 和从 Cloud Web 控制台检索到的凭据创建客户端
let cloud_id = "<cloud id from cloud web console>"; let credentials = Credentials::Basic("<username>".into(), "<password>".into()); let transport = Transport::cloud(cloud_id, credentials)?; let client = Elasticsearch::new(transport);
进行 API 调用
编辑以下内容对 tweets/_search
进行 API 调用,并使用 json 主体 {"query":{"match":{"message":"Elasticsearch"}}}
let response = client .search(SearchParts::Index(&["tweets"])) .from(0) .size(10) .body(json!({ "query": { "match": { "message": "Elasticsearch rust" } } })) .send() .await?; let response_body = response.json::<Value>().await?; let took = response_body["took"].as_i64().unwrap(); for hit in response_body["hits"]["hits"].as_array().unwrap() { // print the source document println!("{:?}", hit["_source"]); }