Pardonnez-moi mon nouveau-né car je suis nouveau à la fois à ElasticSearch et NEST. Je travaille sur un prototype pour évaluer ElasticSearch dans une solution .NET en cours d'implémentation. Le prototype compile et semble chercher, mais ne renvoie pas correctement les résultats. Il ne renvoie que les résultats sur quelques mots-clés, en minuscules seulement, tout en ignorant les autres et en ne renvoyant rien. Je pense qu'il y a quelque chose qui ne va pas dans ma requête. Voici la partie de la requête (supposons que les informations de connexion et l'index par défaut sont spécifiés et construits).ElasticSearch avec le problème de requête NEST
// string searchString to be searched against ProductName and Description fields.
var searchResults = client.Search<Product>(s=>s
.From(0)
.Size(100)
.Query(q=>q.Term(p=>p.ProductName, searchString) ||
q.Term(p=>p.Description, searchString)
));
Voici le modèle si nécessaire:
[ElasticType(IdProperty = "ProductID")]
public class Product
{
[ScaffoldColumn(false)]
[JsonIgnore]
public int ProductID { get; set; }
[Required, StringLength(100), Display(Name = "Name")]
public string ProductName { get; set; }
[Required, StringLength(10000), Display(Name = "Product Description"), DataType(DataType.MultilineText)]
public string Description { get; set; }
public string ImagePath { get; set; }
[Display(Name = "Price")]
public double? UnitPrice { get; set; }
public int? CategoryID { get; set; }
[JsonIgnore]
public virtual Category Category { get; set; }
}
apprécie l'aide!
Avez-vous vraiment l'intention que le nom du produit et la description correspondent à votre chaîne de recherche? –
Je veux que cela corresponde, et oui j'ai utilisé l'opérateur OU aussi avec peu de changement. – Michael
MISE À JOUR: D'accord, apparemment, j'ai fait une erreur de l'opérateur OU avant. Maintenant, la recherche fonctionne mieux, sauf qu'elle semble chambouler le cas des lettres ... par ex. "Custom" ne renvoie rien, mais "custom" renvoie "Kat Custom Car" ... – Michael