Je lance une requête qui renvoie 10 résultats. Il y a une propriété dans mon document appelée Type. La valeur de cette propriété pour certains enregistrements est une chaîne vide et pour d'autres enregistrements est soit "AudioAlbum" soit "AudioRington".
Je veux faire deux choses : 1- Exclure du résultat de la recherche les documents dont la propriété Type n'a pas de valeur. 2- Obtenir uniquement les AudioAlbums (comme une recherche différente).
Mon code de recherche pour obtenir les AudioAlbums est le suivant :
var docs = client.Search<content>(
b => b.Type("content")
.Query(q => q.Fuzzy(fz => fz
.OnField("title").Value(keyWord)
.OnField("artists.name")))
.Filter(x => x.Term("type", "AudioRingtone")))
.Documents.ToList();
Sans la méthode d'extension Filter, j'obtiens 10 enregistrements (dont deux AudioAlbums). Lorsque j'ajoute la méthode .Filter, j'obtiens zéro enregistrement.
Je veux également exclure les enregistrements dont la propriété Type n'a pas de valeur. Encore une fois, mon code (donné ci-dessous) n'enregistre aucun résultat :
BaseFilter notFilter = Filter.Not(x => Filter.Term("Type", string.Empty));
var docs = client.Search<content>(
b =>
b.Type("content")
.Query(q => q.Fuzzy(fz =>fz.OnField("title")
.Value(keyWord)
.OnField("artists.name")))
.Filter(notFilter)).Documents.ToList();
Quel est le problème avec mon code ?