How to search multiple doc types in Umbraco using Examine

Have you ever needed to restrict Examine in Umbraco to search a restricted list of doc types? Then this is for you.

By default when searching Umbraco content using Examine you can only provide 1 document type alias to limit which content types are searched which can be limiting if you have lots of different types of content and can be time-consuming constructing a query to add all the different content types to the search query. Below is an example of how you can use built-in features to pass a list of doc types to the search query in one method.

When using the following tutorial as a starter, you can adjust the code to the below to search more than one Umbraco doc type (key areas are in bold):

    IEnumerable ids = Array.Empty();
    var docTypes = new string[]{
    if (_examineManager.TryGetIndex(Umbraco.Cms.Core.Constants.UmbracoIndexes.ExternalIndexName, out IIndex? index))
    ids = index
        .GroupedOr(new string[] { ExamineFieldNames.ItemTypeFieldName }, docTypes)
        .Field("nodeName", query)
        .Select(x => x.Id);

foreach (var id in ids)
    yield return _umbracoHelper.Content(id);