0

我有这些命令

> FT.CREATE feeders ON HASH PREFIX 1 MOC: SCHEMA MOC TEXT  H_W TEXT H_Y TEXT F TEXT

...

> FT.SEARCH feeders "@MOC: MOC111"

如何使用 NRediSearch 做到这一点?

4

1 回答 1

0

初始化库

NRediSearch 以基础 StackExchange.Redis 库中标准的不同客户端对象为中心:

var mux = ConnectionMultiplexer.Connect("localhost");
var client = new Client("feeders", mux.GetDatabase());

创建索引

您将初始化其中一个传递所需索引名称和对象的IDatabase对象,然后创建一个模式对象,您还将添加所需的字段,接下来您将创建一个ConfiguredIndexOptions对象来定义所需的前缀,最后您将调用CreateIndexAsync

//initialize schema
var schema = new Schema();

//AddTextFields
schema.AddTextField("Moc");
schema.AddTextField("H_W");
schema.AddTextField("H_Y");
schema.AddTextField("F");

//declare prefixes
var options = new Client.ConfiguredIndexOptions(new Client.IndexDefinition(prefixes: new[]{"MOC"}));

//create index
await client.CreateIndexAsync(schema, options);

询问

最后,您将创建一个Query对象,使用查询字符串对其进行初始化,然后使用Searchor进行查询SearchAsync,生成的对象将保存从数据库中检索到的所有文档

var query = new Query("@MOC: MOC111");
var res = await client.SearchAsync(query);            
Console.WriteLine(res.Documents.Count);
于 2021-09-14T21:49:23.890 回答