2 个稳定版本

1.1.2 2024年6月20日

#1115数据库接口

MPL-2.0 许可证

68KB
1.5K SLoC

Sonic Channel

Build unsafe forbidden Documentation Crates.io Crates.io

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