Elastic search 2.0 Nest 2.0 datetime month search

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

我需要从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个回答
0
投票

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

您需要为此使用脚本查询

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

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

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