database - 如何使用 Rust 从 RediSearch 中检索数据?
问题描述
我正在尝试使用 Rust 并使用 FT.SUGGET 命令从 RediSearch 获取自动完成数据,但它最终检索到 None 值,即使当我直接使用命令提示符运行 FT.SUGGET 时,它也会正确给出响应。这是我的代码,它的格式在 Redis 中非常适用于集合和获取。FT.SUGADD 在这方面也能正常工作。感谢您未来的帮助!
pub fn ft_sugadd(index: String, field: String) -> redis::RedisResult<()>
{
let client = redis::Client::open("redis://127.0.0.1/")?;
let mut con = client.get_connection()?;
redis::cmd("FT.SUGADD").arg(index).arg(field).arg("1".to_string()).query(&mut con)?;
Ok(())
}
pub fn ft_sugget(index: String, field: String) -> redis::RedisResult<String>
{
let client = redis::Client::open("redis://127.0.0.1/")?;
let mut con = client.get_connection()?;
let data_value = redis::cmd("FT.SUGGET").arg(index).arg(field).arg("fuzzy".to_string()).query(&mut con)?;
Ok(data_value)
}
fn main()
{
ft_sugadd("dictionary".to_string(), "Bob".to_string()).ok();
let remember = ft_sugget("dictionary".to_string(), "Bo".to_string()).ok();
println!("Hello {:?}", remember);
}
解决方案
这个问题已经解决了——它不能正常工作的原因是函数 ft_sugget 被定义为返回字符串,而实际上它应该返回一个字符串向量。
推荐阅读
- javascript - 如何在页面中多次使用一个 SVG 文件
- java - Snake Game -- Can't steer snake
- laravel - @if at Script TAG laravel
- docker - 如何将容器内的文件系统映射到 Visual Studio Code 内的工作空间
- java - Spring Data Cassandra 执行的日志查询
- azure-devops - 如何以编程方式检测工作项更改类型 Azure Devops
- c - 位操作,ASCII 和二进制
- c# - 如何在 IoT Edge 模块中读取模块孪生?
- reactjs - DirectionsRenderer 用于作为道具的起点和终点
- docker - Docker container CPU usage exceeds 100% sometimes when streaming from "docker stats"