Marcus Granström
Feb 12, 2014
  4592
(2 votes)

Multi Search with EPiServer Find 7.5

With the release of EPiServer 7.5 we of course also released a 7.5 version of EPiServer Find. This release includes among other things a new feature to be able to handle multiple searches in one request. It will then return an IEnumerable<SearchResults<T>>. There are several use cases for this, several queries for a specific page can now be done in one round trip. Here you see a simple example of how to do it with the api.

results = service.MultiSearch<Article>()
                .Search<Article>(x => x.For("Banana").InField(y => y.Title))
                .Search<Article>(x => x.For("Annanas").InField(y => y.Title))
                .GetResult();

In the example above both queries search in the Article type and also returns the article type. It is also possible to search in different types and return a different type. Using the projections that are very powerful in EPiServer Find.

IEnumerable<SearchResults<string>> results = service.MultiSearch<string>()
    .Search<Article, string>(x => x.For(indexedArticle.Title).InField(y => y.Title).Select(y => y.Title))
    .Search<User, string>(x => x.For(indexedUser.Name).InField(y => y.Name).Select(y => y.Name)).GetResult();

The results are always returned in the same way as they are searched for. So the first result will be the first query. Also these will of course only count as one query against the index and will hopefully save you from any problems with too many requests.

Happy Finding!

Feb 12, 2014

Comments

Petter Klang
Petter Klang Feb 12, 2014 05:05 PM

Been looking forward to this!

Good job keep it up!

Petter Klang
Petter Klang Feb 12, 2014 05:05 PM

(double post)

Feb 12, 2014 06:37 PM

Very nice! So where is this documented? I'm particularily interested in the MultiUnifiedSearch functionality.

Yauheni Aliashkevich
Yauheni Aliashkevich Mar 29, 2014 10:03 AM

Just to let you know: Multi Search fails if you use Take()/Skip() in your queries

Please login to comment.
Latest blogs
Integrating Optimizely DAM with Your Website

This article is the second in a series about integrating Optimizely DAM with websites. It discusses how to install the necessary package and code t...

Andrew Markham | Sep 28, 2024 | Syndicated blog

Opticon 2024 - highlights

I went to Opticon in Stockholm and here are my brief highlights based on the demos, presentations and roadmaps  Optimizely CMS SaaS will start to...

Daniel Ovaska | Sep 27, 2024

Required fields support in Optimizely Graph

It's been possible to have "required" properties (value must be entered) in the CMS for a long time. The required metadata haven't been reflected i...

Jonas Bergqvist | Sep 25, 2024

How to write a bespoke notification management system

Websites can be the perfect vehicle for notifying customers of important information quickly, whether it’s the latest offer, an operational message...

Nicole Drath | Sep 25, 2024

Optimizely DAM – An Introduction

I presented a talk about the Optimizely DAM at the OMVP summit during Opticon 2024 in Sweden. I have now converted that talk into two blog posts....

Andrew Markham | Sep 25, 2024 | Syndicated blog

Simple and Effective Personalization with Optimizely Data Platform (ODP)

As we dive into the amazing capabilities of Optimizely One, let’s shine a spotlight on the Optimizely Data Platform (ODP). This simple tool unifies...

Alex Harris - Perficient | Sep 24, 2024 | Syndicated blog