【问题标题】:Elastic search 2.0 Nest 2.0 datetime month search弹性搜索 2.0 嵌套 2.0 日期时间月搜索
【发布时间】:2020-09-05 01:40:08
【问题描述】:

我需要从 datestart 字段中获取给定的月份数据。

public DateTime? datestart { get; set; }

我尝试了以下代码。但它没有用。不返回结果。

string givenMonth = "5"; //May
            thisMonthQuery = Query<ProjectModel>.Match(
                q => q.Field(f => f.datestart.Value.Month.ToString()).Query(givenMonth));

【问题讨论】:

  • 您正在尝试过滤给定月份的日期?
  • 是的,我编辑了这个问题。我想现在很清楚了。

标签: datetime elasticsearch search nest


【解决方案1】:

您不能使用匹配查询在日期字段中搜索月份。日期字段不会像文本字段那样拆分为不同的标记,因此您无法按月份进行搜索。

您需要为此使用脚本查询

.Script(sn => sn
    .Inline("doc['datestart'].value.monthOfYear==param1")
    .Params(p => p.Add("param1", 5))
)

您也可以创建文本类型的子字段并使用匹配查询,但是您的输入也可以匹配日期部分!。

【讨论】:

    猜你喜欢
    • 2020-09-04
    • 2023-03-03
    • 2020-08-21
    • 2013-09-14
    • 2012-07-15
    • 1970-01-01
    • 2021-09-01
    • 2015-09-24
    • 2020-06-14
    相关资源
    最近更新 更多