2 个稳定版本
1.1.2 | 2024年6月20日 |
---|
#1115 在 数据库接口
68KB
1.5K SLoC
Sonic Channel
Rust 版本 sonic 搜索后端客户端。
我们建议您从 文档 开始。
安装
MSRV 是:1.58.1
在 Cargo.toml
中将 sonic-channel = { version = "1.1" }
添加为依赖项。
Cargo.toml
示例
[package]
name = "my-crate"
version = "0.1.0"
authors = ["Me <[email protected]>"]
[dependencies]
sonic-channel = { version = "1.1", features = ["ingest"] }
如果想要排除默认的 search
通道,请将 default-features = false
添加到依赖项中。
示例用法
搜索通道
注意:此示例需要启用 search
功能,默认已启用。
use sonic_channel::*;
fn main() -> result::Result<()> {
let channel = SearchChannel::start(
"localhost:1491",
"SecretPassword",
)?;
let objects = channel.query(QueryRequest::new(
Dest::col_buc("collection", "bucket"),
"recipe",
))?;
dbg!(objects);
Ok(())
}
摄取通道
注意:此示例需要启用 ingest
功能。
use sonic_channel::*;
fn main() -> result::Result<()> {
let channel = IngestChannel::start(
"localhost:1491",
"SecretPassword",
)?;
let dest = Dest::col_buc("collection", "bucket").obj("object:1");
let pushed = channel.push(PushRequest::new(dest, "my best recipe"))?;
// or
// let pushed = channel.push(
// PushRequest::new(dest, "Мой лучший рецепт").lang(Lang::Rus)
// )?;
dbg!(pushed);
Ok(())
}
控制通道
注意:此示例需要启用 control
功能。
use sonic_channel::*;
fn main() -> result::Result<()> {
let channel = ControlChannel::start(
"localhost:1491",
"SecretPassword",
)?;
let result = channel.consolidate()?;
assert_eq!(result, ());
Ok(())
}
可用功能
- 默认 - ["search"]
- search - 添加带方法的 sonic 搜索模式
- ingest - 添加带方法的 sonic 摄取模式
- control - 添加带方法的 sonic 控制模式
依赖项
~2.5MB
~44K SLoC