We have moved!

You are currently looking at documentation for Umbraco 8 and older versions.
An automated guess is that docs.umbraco.com/umbraco-cms/extending/backoffice-search/ could be the link to the new documentation for Umbraco 9 and newer versions.

    Backoffice Search

    The search facility of the Umbraco Backoffice allows the searching 'across sections' of different types of Umbraco entities, eg Content, Media, Members. However 'by default' only a small subset of standard fields are searched:

    Node Type Propagated Fields
    All Nodes Id, __NodeId and __Key
    Media Nodes UmbracoFileFieldName
    Member Nodes email, loginName

    However, a specific Umbraco implementation may have additional custom properties that it would be useful to be considered in a Backoffice Search, for example perhaps there is an 'Organisation Name' property on the Member Type, or the 'Main Body Text' property of a Content item.

    Umbraco 8.6 introduced a new way to extend/override the default fields by implementing IUmbracoTreeSearcherFields. This service exposes the list of default internal search fields for each section and allows modification of them.

    All Node types

    public class CustomUmbracoTreeSearcherFields : UmbracoTreeSearcherFields, IUmbracoTreeSearcherFields
    {
        public IEnumerable<string> GetBackOfficeFields()
        {
            return new List<string>(base.GetBackOfficeFields()) { "parentID" };
        }
    }
    

    Documents types

    public class CustomUmbracoTreeSearcherFields : UmbracoTreeSearcherFields, IInternalSearchConstants
    {
        public IEnumerable<string> GetBackOfficeDocumentFields()
        {
            return new List<string>(base.GetBackOfficeDocumentFields()) { "parentID" };
        }
    }
    

    Media Types

    public class CustomUmbracoTreeSearcherFields : UmbracoTreeSearcherFields, IUmbracoTreeSearcherFields
    {
        public IEnumerable<string> GetBackOfficeMediaFields()
        {
           return new List<string>(base.GetBackOfficeMediaFields()) { "parentID" };
        }
    }
    

    Member Types

    public class CustomUmbracoTreeSearcherFields : UmbracoTreeSearcherFields,  IUmbracoTreeSearcherFields
    {
        public IEnumerable<string> GetBackOfficeMembersFields()
        {
            return new List<string>(base.GetBackOfficeMembersFields()) { "parentID" };
        }
    }
    

    More advanced extensions

    For further extensibility of the Umbraco Backoffice search implementation check ISearchableTree