Можно проверить response.IsValid
, чтобы определить, является ли запрос действительным для вызова API Elasticsearch.
response.DebugInformation
предоставит более подробную информацию о вызове API в удобном для чтения формате, в том числе в случае ошибки. Если это ошибка в Elasticsearch, response.ServerError
будет заполнен деталями.
Не зная дополнительных подробностей об ответе, я подозреваю, что проблема заключается в синтаксическом анализе строки "2018-08-20"
в качестве даты на стороне сервера Elasticsearch. Elasticsearch попытается проанализировать строку в дату, используя формат, указанный в отображении поля date
для StartDate
, и если дата в поисковом запросе находится в другом формате, вы можете указать формат в DateRange
запрос с .Format(...)
.
Если исходно индексировать документ с помощью клиента .NET и использовать сериализацию DateTime
по умолчанию, вы можете просто использовать экземпляр DateTime
для предоставления необходимой даты
.DateRange(r => r
.Field(f => f.StartDate)
.GreaterThan(new DateTime(2018, 8, 20))
.LessThanOrEquals(DateMath.Now)
)
, который будет сериализован как
"2018-08-20T00:00:00"
в том же формате, что и поле в индексе. Кроме того, вы можете передать строку в этом формате.