I want to use Episerver Find MultiSearch to limit nr of requests to Find, as specified here.
How can I dynamically add Searches, typically inside a foreach statement?
The code below works, but I can see through Fiddler that nr of request matches 'mainCategories' count.
if (mainCategories.Any())
{
var multiSearchQuery = SearchClient.Instance.MultiSearch<EntryContentBase>();
foreach (var mainCategory in mainCategories)
{
var mainCategoryName = mainCategory.Term;
multiSearchQuery.Searches.Add(
multiSearchQuery.Client.Search<EntryContentBase>()
.CommonProductFilter(currentStore)
.AddPromotionPrefixAndStoreFilter(prefix, currentStore)
.Filter(p => p.MainCategory().Match(mainCategoryName))
.Take(count));
}
var contentResults = multiSearchQuery.GetContentResult();
foreach (var contentResult in contentResults)
{
var productVariants = contentResult.LoadProducts();
result.AddRange(productVariants);
}
}