gpt4 book ai didi

c# - 通过使用Nest C#,如何在Elasticsearch查询(EQL)中使用不存在或null?

转载 作者:行者123 更新时间:2023-12-03 00:46:56 24 4
gpt4 key购买 nike

每个人都知道,Nest Elasticsearch对要查找的东西进行澄清的查询并不容易且很无聊。我也为这个问题感到困惑。结果,我无法在查询中使用“不为空”和null。

   var list = client.Count<LogMessage>(s => s.Index("xxx-*").Query(q =>
!q.Term(t => t.Field(f => f.Test.Suffix("keyword")).Value(null)) &&
q.Term(t => t.Field(f => f.Environment.Suffix("keyword")).Value("yyy")) &&
q.DateRange(t => t.Field(f => f.LogDate).GreaterThan(DateTime.Now.AddMinutes(-15)))));

Null或字符串。Empty在这里不起作用。如何使用NOT null或Not Empty?

最佳答案

IMO这不是一个NEST可用性问题,因为在Elasticsearch本身中做到这一点并不容易。通过在该字段上否定一个通配符查询(.Wilcard)和/或使用.Exists来查找不具有该字段的文档,我已经取得了成功,因为空值未存储在文档中,并且空值很难在非关键字中搜索文本字段,因为分析器不会查找空白值。

请查看此答案及其下一个更短的答案。
https://github.com/elastic/elasticsearch/issues/7515#issuecomment-158668403

关于c# - 通过使用Nest C#,如何在Elasticsearch查询(EQL)中使用不存在或null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59499793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com