Ich habe diese elasticsearch Query, die perfekt in einem Rohformat funktioniert und ich habe Schwierigkeiten, es in eine C# NEST-Klausel zu verwandeln.ElasticSearch Nest Query Bool Filter mit mehreren Muss-Klauseln
Dies ist die rohe Abfrage:
{
"query":{
"constant_score":{
"filter":{
"bool":{
"must":{
"term":{
"ingredients":"baking"
}
},
"must":{
"term":{
"ingredients":"soda"
}
}
}
}
}
}
}
Und das ist, was ich dachte, in NEST C# funktionieren würde:
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();
}
Der Benutzer eine Reihe von x-Werte können, die für das bedeutet schicken jeder Wert muss eine sein:
"must":{
"term":{
"ingredients":"soda"
}
}
Die 'must'-Klausel einer' bool'-Abfrage ist ein Array; Ich würde vermuten, dass die zweite 'must'-Klausel-Eigenschaft am Ende die erste überschreiben wird. Welche Version von NEST verwenden Sie? –
Ich verwende die neueste Version. 2.3.x denke ich es ist. – McBoman