Sur cette base artículo À partir d'Ayende, j'ai créé la définition d'index suivante
public class ProductsSearch : AbstractIndexCreationTask<Product, ProductsSearch.Result>
{
public class Result
{
public string Query { get; set; }
}
public ProductsSearch()
{
Map = products => from product in products
select new
{
Query = new object[]
{
product.Title,
product.Tags.Select(tag => tag.Name),
product.Tags.SelectMany(tag => tag.Aliases, (tag, alias) => alias.Name)
}
};
Index(x => x.Query, FieldIndexing.Analyzed);
}
}
Une différence est que je dois utiliser une instruction SelectMany pour obtenir les alias d'une balise. Une balise peut avoir plusieurs alias (par exemple, balise : souris alias:dispositif de pointage).
Je ne sais pas pourquoi la ligne SelectMany casse l'index. Si je la supprime, l'index fonctionne.