如何为弹性条件源描述符创建Nest

问题描述 投票:0回答:1

在我的索引中,我有类型吸引力的文档,他们有一个属性,这是一个优惠列表。这些优惠有一个到期日。每个景点可以有多个优惠,一个景点可能有一个过期而一个未过期的优惠。我想要做的是当我查询并将我的结果恢复为未在景点中显示任何过期的优惠。我的源描述符如下所示:

.Source(src => src.IncludeAll().Excludes(f => f.Fields(d => d.Offers.Where(df => df.Expires > DateTime.Now)))

在生成的查询部分中,我可以看到以下内容:

{ "includes": [ "*" ], "excludes": [ "offers.now.expires"] }

我仍然看到已过期但未过期优惠的特定景点的过期优惠。是否有可能有条件地过滤源描述符中的字段?

我也尝试过:

.Source(src => src.IncludeAll().Excludes(f => f.Fields(d => d.Offers.First().Expires > DateTime.Now))

输出相同,结果相同,我仍然在返回的吸引文档中获得过期的报价

c# elasticsearch nest
1个回答
1
投票

Elasticsearch不能对源进行条件过滤。所以我认为Nest因为linq而在代码中允许它,但这不起作用。你必须在客户端过滤掉。

© www.soinside.com 2019 - 2024. All rights reserved.