dawi
Sep 20, 2016
  7194
(3 votes)

Nested queries in Episerver Find

VIP-Players-Union

So you finally got the promotion you were hoping for and now you the man in charge!

As your first decision you obviously purchase a Episerver CMS and Episerver Find license. Everybody in the company applauds your decision and all are excited about the future possibilities with regards to Episerver Find.

Your first task is to learn about the players that are part of your union. You crack open Visual studio and take a look at the current data model:

public class Team

{

 public Team(string name)

 {

  TeamName = name;

  Players = new List<Player>();

 }

 public string TeamName { get; set; }

 public List<Player> Players { get; set; }

}

 

public class Player

{

  public string FirstName { get; set; }

  public string LastName { get; set; }

  public int Salary { get; set; }

}



 

Note: One of the lesser known features in Episerver Find is the support for nested queries. Its a very useful feature when you domain model allows for querying on a complex object structure. 

Indexing

You know from your previous experience that data needs to be indexed correctly so that the queries can do their magic.

Something like this will suffice:

 

            client.Index(new Team("Real Madrid") {Players = new List<Player>() 
{ new Player() { FirstName = "Cristiano", LastName = "Ronaldo", Salary = 1000 }}});
            client.Index(new Team("Barcelona"){Players = new List<Player>() 
{ new Player() { FirstName = "Lionel", LastName = "Messi", Salary = 999 }}});
            client.Index(new Team("Geriatrics"){Players = new List<Player>() 
{ new Player() { FirstName = "Judd", LastName = "Lazarow", Salary = 99 }}});
            client.Index(new Team("Geriatrics"){Players = new List<Player>() 
{ new Player() { FirstName = "Lior", LastName = "Lanzer", Salary = 99 }}});



Searching

Note:With Nested queries you will be able to sort, filter and build facets on nested properties. You can read more about it here

In order to present the data in a logical format we make use of the histogram facet functionality which allows us to group the data together in intervals.

No presentation can be complete without an impressive chart and the board of directors was very pleased with the the abilities of their new CEO.

 

result = client.Search<Team>().HistogramFacetFor(x => x.Players, x => x.Salary, 10).GetResult();

Image histogram.png

Sep 20, 2016

Comments

Please login to comment.
Latest blogs
Introducing the Optimizely MCP Server: AI That Speaks Commerce Part-II

— Part 2 · Build Update · B2B Commerce From conversation to completed transaction. Part 1 gave AI the ability to speak commerce. The latest release...

Vaibhav | May 29, 2026

Finding Thomas Part 1 - The Observation Post

Meet Thomas Thomas is the returning visitor who has been to your site forty times but has never filled out a form. He opens every newsletter but...

Ritu Madan | May 28, 2026

Extending the Optimizely 11 Link Validation job with custom exclude patterns

This might be common knowledge but I have never done this in all my years working with Optimizely solutions. On a customer I noticed that the link...

Per Nergård (MVP) | May 28, 2026

Optimizely SaaS Visual Glossary

Recently I came across Optimizely SaaS CMS Glossary: https://docs.developers.optimizely.com/content-management-system/v1.0.0-CMS-SaaS/docs/glossary...

Kiran Patil | May 28, 2026 |