我有這個彈性搜索查詢,它以原始格式完美工作,我無法將其轉換爲C#NEST子句。Elasticsearch嵌套查詢具有多個必備子句的布爾過濾器
這是原始查詢:
{
"query":{
"constant_score":{
"filter":{
"bool":{
"must":{
"term":{
"ingredients":"baking"
}
},
"must":{
"term":{
"ingredients":"soda"
}
}
}
}
}
}
}
而這就是我想在C#NEST將工作:
public List<Recipe> FindByMultipleValues(string field, string[] values) {
List<string> vals = values.ToList();
return client.Search<Recipe>(s => s
.Query(q => q
.Bool(fq => fq
.Filter(f => f
.Term(rec => rec.Ingredients, vals)
)
)
)
).Documents.ToList();
}
用戶可以發送x值的數組,這意味着每個值必須有:
"must":{
"term":{
"ingredients":"soda"
}
}
「bool」查詢的'必要'子句是一個數組;我懷疑第二個「必須」條款屬性將最終覆蓋第一個。你使用的是哪個版本的NEST? –
我正在使用最新版本。 2.3.x我認爲是。 – McBoman