Я хочу использовать поиск по диапазону дат в Elasticsearch с использованием NEST API.
Просто это работает, когда я ищу так:
.DateRange(c => c
.Name("myquery")
.Boost(1.1)
.Field(p => p.CreatedOnUtc)
.GreaterThanOrEquals(DateMath.Now.Subtract("3d")) //this works fine
.LessThanOrEquals(DateMath.Now)
.Format("dd/MM/yyyy||yyyy")
.TimeZone("+01:00")
)
Bu, когда я хочу использовать свой пользовательский fromDate Значение Datetime вместо DateMath.Now.Subtract ("3d") ничего не возвращает!
Я пробовал много разных строк кода, как показано ниже, но ни один из они сработали!
.GreaterThan(DateMath.Anchored(fromDate))
или
.GreaterThanOrEquals(DateMath.Anchored(fromDate).RoundTo(DateMathTimeUnit.Day))
или
.GreaterThan(new DateTime(2012, 01, 01, 11, 0, 0))
Возвращенный образец json Значение для моего поля даты и времени:
"createdOnUtc": "2020-04-08T15:53:36.4800870Z"
Я нашел соответствующую документацию / пример запроса на веб-сайте Elasticsearch, расположенный здесь , но это не помогло мне, здесь я скопировал пример синтаксиса Object Initializer из документации:
new DateRangeQuery
{
Name = "named_query",
Boost = 1.1,
Field = "description",
GreaterThan = FixedDate,
GreaterThanOrEqualTo = DateMath.Anchored(FixedDate).RoundTo(DateMathTimeUnit.Month),
LessThan = "01/01/2012",
LessThanOrEqualTo = DateMath.Now,
TimeZone = "+01:00",
Format = "dd/MM/yyyy||yyyy"
}
Является ли проблема, связанная с Format / TimeZone или что мне здесь не хватает?