在Elasticsearch Nest中过滤掉带子项的行

时间:2016-12-12 19:17:47

标签: c# elasticsearch nest

我有一个PurchaseOrder类型,可以有0个或多个VendorStatuses。我想创建一个过滤器,找到{strong>没有 PurchaseOrders的{​​{1}}。我怎么能这样做?

我尝试过的事情:

VendorStatuses

索引中有40条记录,我知道至少有一条记录没有供应商状态,但这些查询全部或全部都没有返回。我该如何实现呢?

我们正在使用Nest 1.7.2和Elasticsearch版本1.4.5

1 个答案:

答案 0 :(得分:0)

一位同事找到了办法。我们发现如果我们否定返回所有具有状态的记录的过滤器,它就可以工作了。我没有意识到你可以简单地否定这样的过滤器。

Filter &= !Filter<PurchaseOrder>.Nested(nfd => nfd.Path(x => x.VendorStatuses.First())
     .Filter(f2 => f2.Missing(y => y.Id)));