You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用NRediSearch创建哈希索引方案并执行检索操作

NRediSearch实现哈希索引创建与检索操作
  • 操作前请先安装依赖NuGet包:NRediSearch、StackExchange.Redis

完整实现代码

using StackExchange.Redis;
using NRediSearch;

// 1. 初始化Redis连接
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("你的Redis服务地址,如127.0.0.1:6379");
IDatabase db = redis.GetDatabase();

// 2. 初始化RediSearch客户端,绑定索引名feeders
Client searchClient = new Client("feeders", db);

1. 创建哈希类型索引(对应原生FT.CREATE命令)

try
{
    // 定义索引字段结构,四个字段均指定为TEXT类型
    Schema schema = new Schema()
        .AddTextField("MOC")
        .AddTextField("H_W")
        .AddTextField("H_Y")
        .AddTextField("F");
    
    // 配置索引规则:仅针对HASH类型数据、匹配键前缀为MOC:
    Client.ConfiguredIndexOptions indexOpts = new Client.ConfiguredIndexOptions();
    indexOpts.SetPrefixes(new RedisValue[] { "MOC:" });
    indexOpts.IndexedOn = Client.IndexedDataStructure.HASH;
    
    // 执行索引创建
    searchClient.CreateIndex(schema, indexOpts);
}
catch (RedisServerException ex) when (ex.Message.Contains("Index already exists"))
{
    // 索引已存在的异常逻辑,可根据业务需求自行调整
    Console.WriteLine("索引已存在,无需重复创建");
}

2. 执行检索(对应原生FT.SEARCH命令)

// 构造检索条件,语法和原生RediSearch查询语法完全一致
Query query = new Query("@MOC: MOC111");
// 如需分页可追加Limit配置:query.Limit(0, 10) 表示返回前10条结果

SearchResult searchResult = searchClient.Search(query);

// 遍历检索结果
foreach (Document doc in searchResult.Documents)
{
    Console.WriteLine($"匹配的Redis键名:{doc.Id}");
    Console.WriteLine($"MOC字段值:{doc["MOC"]}");
    // 按需获取H_W、H_Y、F字段值即可
}

内容的提问来源于stack exchange,提问作者ojoaovitoraraujo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:09:03