【问题标题】:What is the alternative to QueryDescriptor nest 2.xQueryDescriptor nest 2.x 的替代品是什么
【发布时间】:2016-11-03 07:34:47
【问题描述】:

我们正在将 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 中执行类似的操作?

【问题讨论】:

    标签: c# elasticsearch nest


    【解决方案1】:

    对您的代码进行一些更改,您会做得很好:

    1. QueryDescriptor&lt;&gt; 更改为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));
    }
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-22
      • 2022-01-22
      • 2018-11-02
      • 2013-07-09
      • 1970-01-01
      • 2022-08-03
      相关资源
      最近更新 更多