我有一些数据,我正在尝试添加一个额外的过滤器,它将排除/过滤掉任何键/值所在的结果 foo.IsMarried == true
.
现在,有很多文档没有这个字段。如果字段不存在,那么我假设值为 foo.IsMarried = false
.. 因此这些文档将包含在结果集中。
有人能提供线索吗?
我也在使用.net的“nest”nuget客户端库-所以如果答案能针对这个问题,我会非常感激,但对任何答案都很满意,真的。
我有一些数据,我正在尝试添加一个额外的过滤器,它将排除/过滤掉任何键/值所在的结果 foo.IsMarried == true
.
现在,有很多文档没有这个字段。如果字段不存在,那么我假设值为 foo.IsMarried = false
.. 因此这些文档将包含在结果集中。
有人能提供线索吗?
我也在使用.net的“nest”nuget客户端库-所以如果答案能针对这个问题,我会非常感激,但对任何答案都很满意,真的。
2条答案
按热度按时间jexiocij1#
通常,在elasticsearch中,对于布尔字段,如果该字段不存在,并不意味着其值为false。这可能是没有价值的反对。
但是,根据你在本案中的假设-我们可以检查
foo.isMarried
显式为falseOR
它不存在于文档本身中。拉胡尔在另一个答案中提出的问题起到了作用。但是既然你想要一个NEST
在相同的版本中,可以使用下面的代码片段构造查询。你可以通过
NEST
项目中的客户端,如下所示。nwwlzxa72#
可以使用具有以下条件的should查询。
ismarried=假
一定不能结婚
我希望你能把这个原始的dsl查询转换成nest!