Я новичок в Nest, и я, скорее всего, не создаю свой запрос, как мне кажется. Мой вопрос больше связан с тем, как научить человека ловить рыбу, а не давать мне рыбу. Однако в качестве примера я воспользуюсь своей текущей проблемой.
У меня есть несколько документов в ElasticSearch типа Series
. Я отключу его ниже без атрибутов и общедоступных модификаторов только с информацией, относящейся к запросу:
class Series
{
string Id {get; set;}
DateTime StartDate {get; set;}
DateTime EndDate {get; set;}
HashSet<Role> ReleasableTo {get; set;}
}
Все они прекрасные и денди. Я могу Get()
a Series
объект без проблем. Проблема, с которой я сталкиваюсь, пытается выяснить, как Nest форматирует мой запрос. Моя ближайшая цель - найти самый последний Series
, который можно разделить на Role.Visitor
. Я установил запрос Nest следующим образом:
ISearchResponse<Series> response = client
.Search<Series>(r =>
r.Filter(f =>
f.Term<Role>(t=>t.ReleasableTo.First(), Role.Visitor))
.SortDescending(ser => ser.EndDate).Size(1));
На мой взгляд, это должно производить запрос, который фильтрует серию, поэтому учитываются только те, которые ReleasableTo
my Role.Visitor
, обратные сортировки по дате окончания и ограничивают результаты одним возвращенным. Это было бы именно то, что я хочу. В нескольких тысячах записей, которые у меня есть для Series, около 90% соответствуют этому профилю. К сожалению, запрос возвращает 0 результатов. Нет ошибки, просто никаких результатов. Я не знаю, если я неправильно использую API, если Nest создает структуру запроса, которая не имеет смысла, или я просто недостаточно знаю ElasticSearch. Когда я удаляю предложение Filter
, я получаю результат, но я не гарантирован, что каждому разрешено его видеть.
Как просмотреть JSON, который производит и отправляет Nest ElasticSearch?