c# - C#Elastic Search-需要向Elastic index对象添加新参数并将其默认值设置为所有其他对象

标签 c# elasticsearch

我是C#和Elastic搜索的新手。我有一个用户配置文件索引,我必须在C#应用程序中添加“isActive” bool(boolean) 参数。我正在尝试添加一个实现,以将isActive标志设置为True的用户以及在C#的Elastic查询中根本没有此标志的用户。但无法获取要添加到当前getUsers搜索查询中的确切查询。

我正在尝试从C#创建一个 flex 查询,其中在用户对象中不存在isActive属性或isActive为true。

任何帮助将非常感激。

最佳答案

您需要对带有术语查询的should子句(OR)进行检查以确认IsActive == true,并且必须使用must_not子句来检查字段是否存在

var searchResponse = _elasticClient.Search<Project>(s => s
                    .Query(q => q
                    .Bool(b => b
                        .Should(
                                    sh => sh.Term(t => t.IsActive, true),
                                    sh => sh.Bool(bl => bl.MustNot(mn => mn.Exists(e => e.Field(et => et.IsActive)))))
                                )
                          )
                    )

关于c# - C#Elastic Search-需要向Elastic index对象添加新参数并将其默认值设置为所有其他对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61574283/

相关文章:

elasticsearch - 在 Elasticsearch 中存储网站URL命中计数

java - Elasticsearch Java api - 使用bulkProcessor部分更新文档

c# - WPF 数据绑定(bind)有什么意义?实现 INotifyPropertyChange 与手动 GUI 更新

elasticsearch - Elasticsearch每日滚动索引包含重复的_id

c# - Unity项目与VSCode集成时出错

c# - 将事件或命令分配给 ResourceDictionary 中的 DataTemplate

elasticsearch - 如何在 Elasticsearch 管道中指定文档版本?

elasticsearch - 如何在ElasticSearch中找到索引的别名

c# - ASP.NET Identity 2.2.1 - 发送带有代码而不是链接的确认电子邮件

C# MySQL连接多个select语句