Per Magne Skuseth
Sep 4, 2015
visibility 8476
star star star star star star
(4 votes)

Dynamic Multi Search for EPiServer Find

EPiServer Find’s MultiSearch is great, but has a couple of limitations: All searches need to have a common return type, and IContent searches has to be projected to avoid deserialization errors. 
EPiCode.DynamicMultiSearch removes these limitations.

How it works:
Invoke DynamicMultiSearch and GetDynamicResult to retrieve the result sets

IEnumerable<SearchResults<dynamic>> result = client.DynamicMultiSearch()
    .Search<Product>(x => x.Filter(p => p.ProductTypeId.Match(5)))
    .Search<ArticlePage>(Language.English, x => x.For("lemon")) // works with IContent
    .Search<Book>(x => x.Filter(b => b.Title.AnyWordBeginsWith("lemon")).Skip(20).Take(20)) // individual skip and take per query
    .Search<Person>(x => x.For("Per Magne").Select(p => p.Name)) // works with projections
    .GetDynamicResult()

 

Use GetResultSet to retrieve the result set, which accepts an int. This number should match the order in which the search was added

var products = result.GetResultSet<Product>(0);
var articlePages = result.GetResultSet<ArticlePage>(1);
var books = result.GetResultSet<Book>(2);
var personNames = result.GetResultSet<string>(3);

 

Git | Nuget

Read the standard MultiSearch documentation here. If you are new to Find and stumbled across this blogpost you should check of Unified search. It might be just what you need.

Sep 04, 2015

Comments

K Khan
K Khan Sep 4, 2015 01:18 PM

Can we use statistics also with dynamic search without adverse effect to Search Without Hits Interface? :)

Regards
/K

Per Magne Skuseth
Per Magne Skuseth Sep 4, 2015 06:30 PM

Edit: @K Khan, Yes, it is! Check out Mari Jørgensen's latest blog

error Please login to comment.
Latest blogs
Bynder DAM Connector for Optimizely SaaS CMS: Improved Metadata Property Synchronization

While working with the Bynder DAM Connector for Optimizely SaaS CMS , one of the key areas I explored was how Bynder asset metadata is synchronized...

Vipin Banka | Jul 11, 2026

Optimizely DXP: Every Supported Culture, One Searchable Page

Quick one for anyone building multi-language sites on Optimizely DXP. I put together a reference tool listing all 806 supported cultures. More...

Adnan Zameer | Jul 10, 2026 |

A day in the life of an Optimizely OMVP: London Meetup 2026

On 2nd July 2026 the Optimizely London Developer Meetup returned to The Lightwell, and the running theme across the evening was less about individu...

Graham Carr | Jul 10, 2026

Optimizely’s Summer ’26 Roadmap: The CMS Is Starting to Look Less Like a Publishing Tool and More Like Marketing Infrastructure

Optimizely’s Summer ’26 Product Roadmap event was not just a list of product updates. At least, that is not the part I found most interesting. The...

Augusto Davalos | Jul 9, 2026