У меня возникает проблема в фильтрации поиска, пытаясь сопоставить список значений.SQL IN Операторный эквивалент в Elastic Search с клиентом Nest
Вот мой код
List<string> DepartmentIds = new List<string>(){"d1","d2","d3","d4"};
term = "*" + "akshay" + "*"
var searchResults = client.Search<Employee>(c => c
.Index(index)
.Type(type)
.Query(+q.Term(f => f.DeptId.ToLower(), DepartmentIds)) // Facing Issue in Matching list of Department IDs
&& ((q.Wildcard(wc => wc.Field(f => f.FirstName).Value(term)))
|| (q.Wildcard(wc => wc.Field(f => f.LastName).Value(term)))
));
Say есть 10 департаментов и я хочу, чтобы получить результаты из отдела D1, D2, D3 и D4. В основном я должен убедиться, что идентификаторы отдела в индексированном документе соответствуют любому из 4 отделов.
Поскольку количество идентификаторов отдела и их значения будут динамическими. Я хочу в основном найти эквивалент sql в операторе в NEST Client, чтобы я мог соответствующим образом фильтровать мой поиск.
Что делать, если вы используете 'Terms' вместо' Term'? – Val
Hi Val. Не могли бы вы привести пример использования терминов. –
Попробуйте 'q.Terms (f => f.DeptId.ToLower(), DepartmentIds)' вместо 'q.Term (f => f.DeptId.ToLower(), DepartmentIds)' – Val