我有这些命令
> 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 做到这一点?
我有这些命令
> 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 做到这一点?
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
对象,使用查询字符串对其进行初始化,然后使用Search
or进行查询SearchAsync
,生成的对象将保存从数据库中检索到的所有文档
var query = new Query("@MOC: MOC111");
var res = await client.SearchAsync(query);
Console.WriteLine(res.Documents.Count);