相关疑难解决方法(0)

ElasticSearch和Nest过滤不起作用

我运行一个返回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();
Run Code Online (Sandbox Code Playgroud)

如果没有Filter扩展方法,我会得到10条记录(包括两条AudioAlbums).当我添加.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();
Run Code Online (Sandbox Code Playgroud)

我的代码出了什么问题?

c# filter elasticsearch nest

3
推荐指数
1
解决办法
4984
查看次数

标签 统计

c# ×1

elasticsearch ×1

filter ×1

nest ×1