Try our conversational search powered by Generative AI!

Per Magne Skuseth
Sep 4, 2015
  7155
(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

Please login to comment.
Latest blogs
Optimizely and the never-ending story of the missing globe!

I've worked with Optimizely CMS for 14 years, and there are two things I'm obsessed with: Link validation and the globe that keeps disappearing on...

Tomas Hensrud Gulla | Apr 18, 2024 | Syndicated blog

Visitor Groups Usage Report For Optimizely CMS 12

This add-on offers detailed information on how visitor groups are used and how effective they are within Optimizely CMS. Editors can monitor and...

Adnan Zameer | Apr 18, 2024 | Syndicated blog

Azure AI Language – Abstractive Summarisation in Optimizely CMS

In this article, I show how the abstraction summarisation feature provided by the Azure AI Language platform, can be used within Optimizely CMS to...

Anil Patel | Apr 18, 2024 | Syndicated blog

Fix your Search & Navigation (Find) indexing job, please

Once upon a time, a colleague asked me to look into a customer database with weird spikes in database log usage. (You might start to wonder why I a...

Quan Mai | Apr 17, 2024 | Syndicated blog