Rust client for sonic search backend
132de8866e
Bumps [whatlang](https://github.com/greyblake/whatlang-rs) from 0.16.0 to 0.16.1. - [Release notes](https://github.com/greyblake/whatlang-rs/releases) - [Changelog](https://github.com/greyblake/whatlang-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/greyblake/whatlang-rs/compare/v0.16.0...v0.16.1) --- updated-dependencies: - dependency-name: whatlang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> |
||
---|---|---|
.github | ||
.vim | ||
.vscode | ||
src | ||
tests | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
CODE_OF_CONDUCT.md | ||
docker-compose.test.yml | ||
LICENSE | ||
README.md | ||
sonic.cfg |
Sonic Channel
Rust client for sonic search backend.
We recommend you start with the documentation.
Installation
The MSRV is: 1.58.1
Add sonic-channel = { version = "1.0" }
as a dependency in Cargo.toml
.
Cargo.toml
example:
[package]
name = "my-crate"
version = "0.1.0"
authors = ["Me <user@rust-lang.org>"]
[dependencies]
sonic-channel = { version = "1.0", features = ["ingest"] }
Add default-features = false
to dependency, if you want to exclude default
search
channel.
Example usage
Search channel
Note: This example requires enabling the search
feature, enabled by default.
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 channel
Note: This example requires enabling the ingest
feature.
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 channel
Note: This example requires enabling the control
feature.
use sonic_channel::*;
fn main() -> result::Result<()> {
let channel = ControlChannel::start(
"localhost:1491",
"SecretPassword",
)?;
let result = channel.consolidate()?;
assert_eq!(result, ());
Ok(())
}
Available features
- default - ["search"]
- search - Add sonic search mode with methods
- ingest - Add sonic ingest mode with methods
- control - Add sonic control mode with methods