我运行一个返回 10 个结果的查询。我的文档中有一个名为 Type 的属性。对于某些记录,此属性的值为空字符串,而对于其他一些记录,此属性的值为“AudioAlbum”或“AudioRington”。
我想做两件事:1-从搜索结果中排除其 Type 属性没有值的文档。2- 仅获取 AudioAlbums(作为不同的搜索)。
我获取 AudioAlbums 的搜索代码是这样的:
var docs = client.Search<content>(
b => b.Type("content")
.Query(q => q.Fuzzy(fz => fz
.OnField("title").Value(keyWord)
.OnField("artists.name")))
.Filter(x => x.Term("type", "AudioRingtone")))
.Documents.ToList();
如果没有过滤器扩展方法,我会得到 10 条记录(包括两个音频专辑)。当我添加 .Filter 方法时,我得到零记录。
我还想排除 Type 属性没有值的记录。同样,我的代码(如下所示)没有记录任何结果:
BaseFilter notFilter = Filter.Not(x => Filter.Term("Type", string.Empty));
var docs = client.Search<content>(
b =>
b.Type("content")
.Query(q => q.Fuzzy(fz =>fz.OnField("title")
.Value(keyWord)
.OnField("artists.name")))
.Filter(notFilter)).Documents.ToList();
我的代码有什么问题?