Search Based Site Directory: Part 1

In my post Stop Using the Property Bag I outlined my solution for creating a Search Based Site Directory. This is the first in the series directed at implementers for how to accomplish the task using a methodical approach. I present this approach in my sessions on search. It is an iterative 6 step approach to working through a content search project. In the following series of posts, I will use these 6 steps while I create a Search Based Site Directory.

Identify Content Types

In this case our Content Type is an SPWeb, also known as a subsite, a root web, a team site, etc. The truth is, I don’t care about Site Collections, because they are just a container for a root web, so my focus is the web. If you have a bunch of Site Collections, great, this solution works. If you have one Site Collection and tons of sub sites you want to classify, this solution works equally well. Here is the trick. We are going to create our own special custom Content Type and then build a search experience around it. This is the same exact process you would use if you were classifying Contracts, Invoices, Timesheets, or any other business content. In our case, we are going to create a new Content Type called Site Catalog Item.

The next thing to do is determine the attributes, or metadata, we want associated with the Site Catalog Item. In my case I want the following:

  1. Site Title (Text)
  2. Site Description (Multiple lines of text)
  3. Related Department, Organization, Team, Etc. (Managed Metadata)
  4. Site Logo (Picture URL)
  5. Site Link (URL)
  6. Confidentiality Level (Yes/No)
  7. Security Level (Managed Metadata)
  8. Classification (Managed Metadata)

Introducing the Content Type Hub

If you haven’t heard of or used the Content Type Hub, here is your chance. Fundamentally, Content Types are defined at the Site level. If you create a content type in the Root Web it will be available to all sub sites. The problem is, without help, that content type is only available to the sites in that site collection. The Content Type Hub seeks to solve that problem. If you define a content type in the Content Type Hub and Publish it, the content type will be published to all Site Collections associated with the Web Applications that share a Service Application Connection to the Managed Metadata Service associated with the Content Type Hub. That means that in SharePoint Online all Site Collections will get your content type. In your on-premises SharePoint Farm it means IF your SharePoint Administrators configured the Managed Metadata Service correctly, it will work the same.

Foundation: Create Custom Content Type from Site Columns

Here is the first video. Create a custom content type from site columns in a Content Type hub in SharePoint Online. (The process is the same in SharePoint on-premises.)

Next Up

Part 2: Foundation: Create a Custom List with a Custom Content Type

About Matthew McDermott