我在 asp.net mvc 应用程序中使用 elasticsearch 嵌套。
跟随 elasticsearch 查询会引发异常,因为类别和品牌等字段可能为空或为空。如何添加 if 语句并有条件地构建过滤器。谢谢!
我必须使用 bool & must 来组合(AND)过滤器来满足搜索条件。例如,用户想要“鞋子”类别和零售商“macys”中的产品。
s.Query(q => q
.Bool(bq => bq
.Must(
mq => mq.Filtered(fq => fq
.Filter(f => f.Terms("Categories", request.Categories))
),
mq => mq.Filtered(fq => fq
.Filter(f => f.Terms("BrandName", request.Brands))
),
mq => mq.Filtered(fq => fq
.Filter(f => f.Terms("RetailerName", request.Retailers))
),
mq => mq.Filtered(fq => fq
.Filter(f => f.Terms("RetailerName", request.Retailers))
),
mq => mq.Range(r => r
.OnField("SellingPrice")
.GreaterOrEquals((double)request.PriceRanges[0].Start)
.LowerOrEquals((double)request.PriceRanges[0].End)
)
)
)
);