15 个版本 (3 个稳定版本)

1.1.0 2022 年 10 月 24 日
1.0.1 2022 年 7 月 18 日
0.6.0 2022 年 3 月 23 日
0.5.0 2021 年 12 月 22 日
0.2.1 2020 年 7 月 26 日

#2975数据库接口

Download history 7/week @ 2024-03-14 52/week @ 2024-03-21 42/week @ 2024-03-28 8/week @ 2024-04-04

每月 115 次下载
用于 门户

MPL-2.0 许可证

66KB
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.0" }

Cargo.toml 示例

[package]
name = "my-crate"
version = "0.1.0"
authors = ["Me <[email protected]>"]

[dependencies]
sonic-channel = { version = "1.0", 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
~45K SLoC