gpt4 book ai didi

c# - 什么是 QueryDescriptor nest 2.x 的替代品

转载 作者:行者123 更新时间:2023-11-30 13:36:09 25 4
gpt4 key购买 nike

我们正在将我们的 Nest 1.0 迁移到 NEST 2.0,在以前的版本中我们有这样的查询:

container = new QueryContainer();
container = new QueryDescriptor<BaseModel>().Range(qs => qs.OnField(f => f.PublishedDate).LowerOrEquals(TimeZoneInfo.ConvertTimeToUtc(DateTime.Now)));

if (!string.IsNullOrEmpty(contentType) && !contentType.ToLower().Equals("all"))
{
container &= new QueryDescriptor<BaseModel>().QueryString(qs => qs.OnFields(f => f.ContentType).Query(contentType));
}

在 NEST 2.0 中 QueryDescriptor 类不可用,我们如何在 NEST 2.0 中执行类似的操作?

最佳答案

对您的代码进行少量更改,您会很好:

  1. 更改 QueryDescriptor<>QueryContainerDescriptor
  2. 使用DateRange(..)而不是 Range(..)
  3. OnFields(..)方法已更改为 Fields(..)四周
  4. 最后,替换LowerOrEquals(..)LessThanOrEquals(..)

类似于:

container = new QueryContainer();
container = new QueryContainerDescriptor<BaseModel>().DateRange(qs => qs.Field(f => f.PublishedDate).LessThanOrEquals(TimeZoneInfo.ConvertTimeToUtc(DateTime.Now)));

if (!string.IsNullOrEmpty(contentType) && !contentType.ToLower().Equals("all"))
{
container &= new QueryDescriptor<BaseModel>().QueryString(qs => qs.OnFields(f => f.ContentType).Query(contentType));
}

希望对您有所帮助。

关于c# - 什么是 QueryDescriptor nest 2.x 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38136094/

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