【发布时间】:2021-11-28 16:48:25
【问题描述】:
我在.Net core 应用程序中使用StackExchange.Redis 和NRediSearch。
我有一个 .Net DataTable 并使用 IDatabase.HashSetAsync 方法从该 DataTable 中的数据创建了哈希键,它们如下所示 -
products:1
products:2
...
products:n
现在我需要为数据创建索引,以便执行搜索操作。该索引应应用于 DataTable 中的所有 DataColumn。
我看到我们有 IDatabase.Execute 命令来执行此操作,但它不起作用。
ConnectionMultiplexer s_redis = ConnectionMultiplexer.Connect("...:6379,password=...");
var db = s_redis.GetDatabase();
var indexCommand = $"FT.CREATE idx:{key} ON HASH PREFIX 1 {key}: SCHEMA"; //here key = products
foreach(DataColumn dataColumn in dataTable.Columns)
{
indexCommand += $" {dataColumn.ColumnName} TEXT";
}
db.Execute(indexCommand);
但这会引发错误 - '超过 31 字节的库限制' 我花了一些时间在谷歌上搜索文档,但没有任何运气。有人可以帮助我以正确的方式做到这一点吗?
【问题讨论】:
标签: c# .net-core redis stackexchange.redis