我一直在阅读文档,并试图找到一种解决方案,以通过多个字段和列过滤结果,但是我不断遇到错误。格式错误的查询。
我想用完全相等的值过滤结果,例如:
allMatch
为了更清楚我打算做什么,如果要使用SQL编写,这就是我希望它运行的方式:
x
如何使用C#NEST HighLevel编写以上SQL?
答案 0 :(得分:0)
您可以通过以下查询来实现:
{
"query": {
"bool": {
"filter": [
{ "term": {"is_active": true }},
{ "terms": {"category_id": [1, 2, 3, 4] }},
{ "term": {"brand": "adidas" }},
{ "term": {"gender": "male" }}
]
}
}
}
在NEST中,它看起来像这样:
var searchResults = this.Client.Search<XYZ>(s => s
.Query(q => q
.Bool(b => b
.Filter(
bs => bs.Term(p => p.IsActive, "true"),
bs => bs.Terms(p => p.CategoryId, [1, 2, 3, 4]),
bs => bs.Term(p => p.Brand, "adidas"),
bs => bs.Term(p => p.Gender, "male")
)
)
)
);