#c# #elasticsearch #nest
Вопрос:
У меня проблема с функцией QueryContainerDescriptor, я определяю документ StudentDocument
public class StudentDocument { public int id {get;set;} public string studentname {get;set;} public string studentnumber {get;set;} public IEnumerablelt;bookgt; favourbooks {get;set;} } public class book { public int id {get;set;} public string bookname {get;set;} public string AuthorName {get;set;} }
Я определяю фильтр следующим образом: код
var filters = new Listlt;Funclt;QueryContainerDescriptorlt;StudentDocumentgt;, QueryContainergt;gt;(); filters.Add(fq =gt; fq.Terms(t =gt; t.Field(f =gt; f.studentnumber).Terms("1346282"))); var response = await client.SearchAsynclt;StudentDocumentgt;(x =gt; x.Query(q =gt; q .Bool(bq =gt; bq.Filter(filters))));
Возвращаемый результат эластичного поиска будет :
{ "total": 1, "results": [ { "id": 1346282, "studentname": "Casey", "studentnumber" :"YT2021" "favourbooks": [ { "id": 1, "bookname":"Three Little Pig", "AuthorName":"Steven Kellogg" }, { "id": 2, "bookname":"Winnie The Pooh", "AuthorName":"A. A. Milne" } ] } }
Эта часть-работа. Но я не знаю, как сделать фильтр для поиска в дополнительном списке , например, добавить дополнительный фильтр, где studentname. favourbooks ==»Три поросенка»
Может ли кто-нибудь посоветовать это ?
Спасибо