이 elasticsearch 쿼리는 원시 형식으로 완벽하게 작동하며 C# NEST 절로 바꾸는 데 문제가 있습니다.여러 개의 must 절이있는 Elasticsearch Nest 쿼리 bool 필터
이 원시 쿼리입니다 :
{
"query":{
"constant_score":{
"filter":{
"bool":{
"must":{
"term":{
"ingredients":"baking"
}
},
"must":{
"term":{
"ingredients":"soda"
}
}
}
}
}
}
}
그리고 이것이 내가 C#을 NEST에서 일 것이라고 생각 것입니다 : 사용자는 X 값의 배열을 보낼 수 있습니다
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();
}
에 대한 것을 의미한다 각각의 값은이 있어야합니다 :
이 같은"must":{
"term":{
"ingredients":"soda"
}
}
'bool' 쿼리의'must' 절은 배열입니다. 나는 두 번째'must' 절이 첫 번째 항목을 덮어 쓰게 될 것이라고 의심 할 것이다. NEST의 어떤 버전을 사용하고 있습니까? –
최신 버전을 사용하고 있습니다. 2.3.x 나는 그것이 있다고 생각한다. – McBoman