• How to display values from custom managed properties in search results - option 1

    This is a blog post in the series "How to change the way search results are displayed in SharePoint Server 2013." To demonstrate how you can customize your search results, I'll use examples from an internal Microsoft Search Center.

    For an overview of the blog posts in this series, go to How to change the way search results are displayed in SharePoint Server 2013.

    In the previous blog post, I introduced you to the Search Center example I am using in this series, and explained how you can create a new result type. In this blog post we'll learn:

     

    How to display a custom icon

    In a previous blog, I showed you how the icons Word, PDF and Excel are displayed for each search result. In my Search Center scenario, I wanted to add the following custom icon next to all search results that belong to the newly created TechNet content result type:

    To display a custom icon for search results, here's what you should do:

    1. Add the custom icon to a SharePoint library.

      In my Search Center scenario, I added the custom icon to the Images library.

    Icon in Images library

    1. Open the item display template that is referenced from the result type for which you want to display a custom icon.

      In my scenario, this was the TechNet content file.
    2. In the item display template, modify the value for ctx.CurrentItem.csr_Icon so that it points to the custom icon.

      In my scenario, I also removed the if statement, if(ctx.CurrentItem.IsContainer).

    ctx.CurrentItem.csr_Icon points to custom icon

    1. On a search page, enter a query that will trigger the new result type.

      In my scenario, I entered "result type."  Search results that are TechNet publications now have a custom icon next to them. Great!

    Custom icon displayed in search results

    So users of our search center could now easily distinguish the search results that had been published on TechNet. However, I also wanted to add information from custom site columns so that users could see important information about each search result without having to click on it.

    At the start of this series, I explained that site columns are “transformed” into managed properties during crawl. I also explained that only managed properties that are listed in an item display template can be displayed in search results. So, to display custom information in your search results, you need to add managed properties to an item display template. Hence, the next thing you should do is find the managed property name that corresponds to the custom site column that you want to use.

     

    How to find a managed property name

    Before you start searching for a managed property name, it’s important that you know a bit about the naming convention for managed properties. For more information about this, see Automatically created managed properties in SharePoint Server 2013.

    Depending on your permission level, you can search for managed properties from three places:

    Permission level From where you can search
    Search service application administrator Central Administration --> Managed Service Application --> Search Service Application --> Search Schema
    Site collection administrator Site Settings --> Search Schema (in the Site Collection Administration section)
    Site collection owner Site Settings --> Schema (in the Search section)

    To save space, I will only show you how to find a managed property name as a Site collection administrator.

    Here’s what you should do:

    1. Go to Site settings --> Search Schema.

    Search Schema on Site Settings page

    1. On the Managed Properties page, in the Managed property field, type the name of the site column that you want to find the managed property name of. Remember that managed property names don’t contain spaces, so if your site column name contains a space, leave it out.

      In my scenario, I wanted to find the managed property name for the site column Content Summary. I entered ContentSummary in the Managed property field, and clicked the green arrow icon.

    Search for ContentSummary

    One search result was returned: ContentSummaryOWSMTXT.

    ContentSummaryOWSMTXT returned as search result

    Since the Content Summary site column is of type Multiple lines of text, I knew that this was the managed property name that I wanted to use.

    1. Repeat the steps from this procedure to find the names of all of the managed properties that you want to display in your search results.

    So now that you have found the names of the managed properties that you want to show in your search results, the next step is to modify the item display template.

     

     

    How to modify an item display template to show values from custom managed properties - option 1

    As I explained in the previous blog, there are different ways you can go about modifying an item display template to show values from custom managed properties. The first option I'll show you is very simple (I’ll cover the second option in the next blog). It does not include any if statements, and hit highlighting is not applied.

    Here's what you should do:

    1. Open the item display template that belongs to the result type for which you want to customize search results.

      In my scenario, this was TechNet content.
    2. In the item display template, in the ManagedPropertyMapping tag, use the following syntax to add the custom managed properties that you want to display:
      '<Current item property name>':<Managed property name>'

      In my scenario, I wanted the values from the managed properties ContentSummaryOWSMTXT and owstaxIdTechnicalSubject to be displayed in the search result. To make the file easier to maintain, I named the current item properties the same as the managed properties.

    Two managed Properties added to display template

    1. Inside the second <div> tag in the <body>, use the following syntax to add code that will display the value of the custom managed property:
      _#= ctx.CurrentItem.<Current item property name> =#_

      In my scenario, I added the following to the item display template:
      <div>_#= ctx.CurrentItem. ContentSummaryOWSMTXT =#_</div>
      <div>_#= ctx.CurrentItem. owstaxIdTechnicalSubject =#></div>

    Add properties so that they display in search results

    1. Save the item display template.
    2. NOTE: You do not need to do this step if you are using SharePoint Online.
      Go to Site settings --> Search Result Types. Notice that a Property Sync alert is displayed.

    Property Sync alert displayed

    This alert is displayed because we added managed properties to an item display template (what we did in step 2). To update the result types with the newly added managed properties, click Update.

    Update managed Properties from result types

    IMPORTANT! If you don't do this update, the newly added managed properties will not display in your search results.

    After I made this change, when users entered a query in our Search Center, both the value of ContentSummaryOWSMTXT and the value for owstaxIdTechnicalSubject were displayed in the search results.

    Values of custom properties displayed in search results
    But even though two custom properties were now displayed in our search results, I wasn’t quite happy with the result. For example, I wanted to display the two custom properties between the title and the link, and not below the link as was currently the case.

    To better understand why the search results were displayed the way they were, let's take a closer look at the customized item display template:

    How the display template displays content

    1. ctx.CurrentItem.csr_Icon points to the location of my custom icon. This variable is used by the Item_CommonItem_Body display template.
    2. _#=ctx.RenderBody(ctx)=#_ calls the Item_CommonItem_Body display template (remember, I talked about this in an earlier blog post). The Item_CommonItem_Body display template displays the custom icon, title and the link to the item.
    3. _#= ctx.CurrentItem.ContentSummaryOWSMTXT =#_ and _#= ctx.CurrentItem.owstaxIdTechnicalSubject =#_ display the values of the two managed properties, ContentSummaryOWSMTXT and owstaxIdTechnicalSubject.

    To display the custom properties between the title and the link, you could simply take the Item_CommonItem_Body display template out of play by deleting the reference _#=ctx.RenderBody(ctx)=#_ from your custom display template. You could then add the properties in the order that you want them to display, for example like this:

    Reference to _#=ctx.RenderBody(ctx)=#_ has been deleted

    The search result would then look like this:

    Search result displayed without Item_CommonItem_Body reference

    By working a bit more on the styling, you could have a good enough result. However, by deleting the reference to _#=ctx.RenderBody(ctx)=#_ ,the Item_CommonItem_Body display template is no longer used to display results. The Item_CommonItem_Body display template contains some functionality that will automatically improve the relevancy of your search results. So, before you delete the _#=ctx.RenderBody(ctx)=#_ reference, you should consider if automatically improved relevancy is something that the users of your search site would benefit from.

     

    About click tracking and automatically improved relevancy

    The Item_CommonItem_Body display template contains an onlick method that tracks the click behavior of users. This tracking has an impact on the relevancy of search results. For example, a search result that is often clicked by users will automatically be displayed higher up in the search results. 

    IMPORTANT: If you want your search results to receive automatically improved relevancy based on the click behavior of users, do not delete the reference to _#=ctx.RenderBody(ctx)=#_ from the item display template!

    In the next blog post, I will show you how you can keep this reference, display custom properties between the title and link in the search results, and also apply hit highlighting to your custom properties.

      

    Next blog post in this series
    How to display values from custom properties in search results - option 2

  • Stage 4: Set up search and enable the crawling of your catalog content

    This is a blog post in the series “How to set up a product-centric website in SharePoint Server 2013”.  In this series, I'll use data from a fictitious company called "Contoso" to show you how to use search features to set up a website based on product catalog data. 
    Note: Most of the features described in this series are not available in SharePoint 2013 Online.

    For an overview of the blog posts in this series, go to How to set up a product-centric website in SharePoint Server 2013.

    Quick overview

    As described in Stage 3: How to enable a list as a catalog, the Products list has now been enabled as a catalog. As we'll be using search technology to retrieve and display content on our publishing site (the Contoso website), we have to crawl the catalog so that its content is added to the search index.

    In this blog post, we'll learn:

     

    Start stage 4 

    About crawling

    Depending on your permission level, you can start a crawl from two places:

    Where to start crawl Required premission level
    Central Administration Search service application administrator
    On the catalog Site collection administrator

    The reason why you can start a crawl from two places is that people working with catalog content (let’s call them content managers) are not likely to have Search service application administration level rights, that is, they don’t have access to Central Administration.

    When changes are made to catalog content, it makes sense to want to crawl this content fairly quickly, so that it can be displayed on the publishing site.

    Luckily, content managers can make new content available without having to pester Search service application administrators to run new crawls -- but we'll be coming back to how to do this very shortly, as I first want to explain how to start a full crawl in Central Administration.

     

    How to start a full crawl in Central Administration

    Before you can start a full crawl in Central Administration, you have to specify which content source should be crawled. When you run a full crawl, all content in the content source is crawled even if that content has already been added to the search index.

    For this scenario, we'll crawl the Local SharePoint sites content source.

    1. Go to Central Administration --> Manage service applications --> Search Service Application -- > Content Sources
    2. On the Manage Content Sources page, hover over the Local SharePoint sites content source, and select Start Full Crawl from the menu.

    Start full crawl

     The status of the crawl is shown in the Status column.

    1. Refresh this page until you see that the value in the Status column is Idle.
      This means that the crawl has finished.

    Crawl status

    1. Optionally, you can verify that your items have been added to the search index by clicking Crawl Log.
      In our scenario, we now have 870 items in the search index, which is approximately the same amount of products we have in the Products list.

    Crawl log

     

     

     How to enable continuous crawls in Central Administration

     You can only start a full crawl manually. Nobody wants the hassle of having to manually start a crawl every time a change is made to their catalog content, as this is neither an efficient nor practical way to work. So, to avoid this overhead, you can simply enable a continuous crawl of your content source that contains the catalog. 

     Continuous crawls start automatically at set intervals. Any changes that have been made to the catalog since the previous crawl, are picked up by the crawler and added to the search index.

    To enable continuous crawls:

    1. Go to Central Administration --> Manage service applications --> Search Service Application --> Content Sources.
    2. On the Manage Content Sources page, click Your content source for which you want to enable continuous crawl, in our scenario case, this is Local SharePoint sites.
    3. Select the option Enable Continuous Crawls.

    Enable continuous crawls

     

     

    How to set continuous crawl interval

    The default interval for continuous crawls is 15 minutes. You can set shorter intervals by using PowerShell. The code snippet below sets the continuous crawl interval to 1 minute.

    $ssa = Get-SPEnterpriseSearchServiceApplication
    $ssa.SetProperty("ContinuousCrawlInterval", 1)

    So, by enabling continuous crawls, you can avoid a lot of frustration from content managers as they no longer have to wait for Search service application administrators to start a crawl for them. However, for some catalog changes, for example, enabling managed properties as refiners, continuous crawls are not sufficient, and you will need to do a full reindexing of the catalog content. But not to worry. Content managers have no reason for concern, because there is a way for them to initiate a full reindexing of the catalog.

     

     

    How to initiate a reindexing of the catalog

    To mark a catalog for reindexing, here's what to do: 

    1. On your catalog (in our case the Products list in the Product Catalog Site Collection), click the LIST tab --> List Settings --> Advanced Settings.
    2. On the Advanced Settings page, click Reindex List.

     Reindex list

     

     

    How to view crawl status and schedule for a catalog

    You can view the crawl status and schedule for an individual catalog. To do this:

    1. On your catalog (in our case the Products list in the Product Catalog Site Collection), click the LIST tab --> List Settings --> Catalog Settings.
    2. On the Catalog Settings page, you can see when the catalog was last crawled, and what crawls are scheduled to run when.
      In our case, we can see that the catalog was last crawled on 3/4/2013 at 5:30:17 AM, and that continuous crawls are scheduled to run every 15 minutes.

    Crawl status for list

     So, all in all, content managers can be happy because their content is added to the search index at short intervals, and Search service application administrators can be happy because they are no longer bothered by content managers constantly asking them to start a crawl.

     

     

    Next blog article in this series
    From site column to managed property - What's up with that?

     

    Additional resources

     

  • Troubleshooting SharePoint configuration error: Cannot connect to database master at server_name

    Hello everyone. I'm Reagan Templin, a new writer on the SharePoint Server IT Pro team. Recently I've been working on getting my test environment set up with SharePoint Server 2010 for the first time. I have my SQL Server computer separate from my SharePoint Server computer, and as I ran the SharePoint Products Configuration Wizard, I encountered the following blocking error on the Specify Configuration Database Settings page:


    "Cannot connect to database master at SQL Server at <server_name>. The database might not exist, or the current user does not have permission to connect to it."


    This error generally means that the account you're using to configure SharePoint does not have adequate permissions to connect to the SQL Server computer and complete the configuration. I went back to the SQL Server computer and verified that my SharePoint administrator account had the correct server roles assigned, and that the master database existed. I also verified that I had logged into the SharePoint Server computer with the SharePoint administrator account, so the configuration should have been able to continue. However
    , configuration was still unable to continue, so I spent some time troubleshooting what else might be wrong. Ultimately, it was a firewall issue blocking access to the port for the instance of SQL Server Database Engine.


    The following is a summary of what I had done to configure the environment and what I did to resolve the error. Hopefully this can help others who may encounter the same error.


    Created Virtual Machines

    For this exercise, I'm using Hyper-V to host virtual machines. I created two new virtual machines: one for my SQL Server computer and one for my SharePoint Server computer. I installed Windows Server 2008 R2 Enterprise edition (64-bit) for both computers. I activated Windows, installed updates, and joined them to my test domain, contoso. I then took Hyper-V snapshots to preserve the images prior to any other installations or configuration.


    Configured Accounts and Permissions

    I followed the information in "Administrative and service accounts required for initial deployment (SharePoint Server 2010)" (http://technet.microsoft.com/en-us/library/ee662513.aspx) and "Least Privilege Service Accounts for SharePoint 2010" (http://www.sharepointproconnections.com/article/sharepoint/Least-Privilege-Service-Accounts-for-SharePoint-2010.aspx) to set up the correct accounts in the domain, and to grant those accounts the recommended access for least-privilege administration in the environment.


    Based on that information, I set up the following domain accounts in Active Directory Domain Services on the Domain Controller computer:

    •  contoso\reagant – my personal domain account. This is the account that I use to log into the SQL Server computer to install and configure it. This account is a member of the local Administrators group on the SQL Server computer in addition to being part of the contoso domain.
    • contoso\SQLsvc – my SQL Server service account. This is the account I specify for the MSSQLSERVER service and SQL Server Agent service during SQL Server installation.
    •  contoso\SPadmin – my SharePoint administrator account. This is the account that I use to login to the SharePoint Server computer to install and configure SharePoint Server 2010. This account is a member of the local Administrators group on the SharePoint Server computer. In SQL Server, it is also a login in SQL Server with dbcreator and securityadmin server roles, which enables the SharePoint Products Configuration Wizard to run and configure SharePoint.
    • contoso\SPfarm – my SharePoint farm account. This is the account I specify as the SharePoint farm administrator (also referred to as the database access account) on the Specify Configuration Database Settings page of the SharePoint Products Configuration wizard.


    Installed and Configured SQL Server 2008 R2

    I logged into the SQL Server computer as reagant and installed SQL Server 2008 R2. For the MSSQLSERVER and SQL Server Agent services, I provided the SQLsvc domain account credentials, and added my reagant account as an administrator for SQL Server Database Engine. I then completed the SQL Server Setup process.


    Following SQL Server Setup, I opened SQL Server Management Studio and connected to the default instance of SQL Server Database Engine. I created a login in SQL Server for the SPadmin domain account, and granted it access to the dbcreator and securityadmin server roles. I then closed Management Studio.


    Installed SharePoint Server 2010

    I logged into the SharePoint Server computer as SPadmin and installed the SharePoint Server 2010 pre-requisites and ran SharePoint Server 2010 Setup.


    Ran SharePoint Products Configuration Wizard

    Following SharePoint Server 2010 Setup, I ran the SharePoint Products Configuration Wizard. I selected the option to create a new server farm. On the Specify Configuration Database Settings page, I specified the SQL Server computer name, a name for the configuration database, and the SPfarm domain account credentials. However, when I clicked Next, I received the error: "Cannot connect to database master at SQL Server at <server_name>. The database might not exist, or the current user does not have permission to connect to it."


    I went back and verified that I had a successful SQL Server installation and that my accounts and permissions were configured correctly. After some trial and error, I remembered an issue I'd had with another product where the Windows Firewall on the SQL Server computer was blocking traffic to the port that the instance of SQL Server Database Engine runs on. By default SQL Server runs on port 1433, and in my simple test environment I had left it to run on that default port. On the SQL Server computer, I opened Windows Firewall with Advanced Services and added an inbound rule to allow traffic over port 1433. If you do not use the default port, create an inbound rule for the port you use in your environment.


    When I went back to run the SharePoint Products Configuration wizard, I no longer encountered the error message and configuration was able to continue. For more information about configuring the Windows Firewall for SQL Server, see "How to: Configure a Windows Firewall for Database Engine Access" (
    http://technet.microsoft.com/en-us/library/ms175043.aspx).

  • How to display values from custom managed properties in the hover panel in SharePoint Server 2013

    This is a blog post in the series "How to change how search results are displayed." To demonstrate how you can customize your search results, I'll use examples from an internal Microsoft Search Center.

    For an overview of the blog post in this series, go to How to change the way search results are displayed in SharePoint Server 2013.

    In my previous blog post, I showed you how to display values from custom managed properties with hit highlighting, and get automatically improved relevancy based on end-user click behavior. In this blog we'll learn:

     

    How to decide which hover panel display template to modify

    Before we do anything, let's first refresh our memories on how the different display templates are connected:

    1. Each result type contains a reference to an item display template.
    2. Each item display template contains a reference to a hover panel display template.
    3. Each item display template contains a reference to the common item display template. 
    4. Each referenced hover panel display template contains references to three common hover panel display templates.

    How different display templates are connected

     

    By default, the rendering of the hover panel is done by the three common hover panel display templates. The illustration below shows how the common hover panel display templates were used to render the default hover panel in my Search Center scenario.

    Display templates used to render the hover panel

    To make life as easy as possible for yourself when adding custom properties to your hover panel, you should leave these three common hover panel display templates as is, and instead, concentrate on the result type specific hover panel display template (highlighted in the illustration below). That’s what I did in my Search Center scenario, and it’s what I’ll show you in this blog post.

    The result type specific hover panel display template

     

    I completely understand if this sounds confusing, but I’ll walk you through all the steps in the next two sections. So let’s just get started!

     


    How to copy an existing hover panel display template

    Remember that when I created the custom item display template TechNet content, I started by copying the item display template named Item_Default.  The Item_Default display template contains a reference to the Item_Default_HoverPanel hover panel display template.  Because I copied the Item_Default display template, my TechNet content display template also contains a reference to the Item_Default_HoverPanel

    Reference to the Item_Default_HoverPanel display template

    I wanted to use the Item_Default_HoverPanel hover panel display template as a basis when adding custom properties to my hover panel, so in my mapped network drive, I copied the Item_Default_HoverPanel display template…

    Copy the Item_Default_HoverPanel display template

    … and gave it a new name: TechNet_Content_HoverPanel.

    Renamed to TechNet_Content_HoverPanel

    I only had to rename the HTML file, because the name of the associated JavaScript file was automatically updated.

    In the TechNet content display template, I changed the reference in var hoverUrl so that it pointed to the newly copied and renamed TechNet_Content_HoverPanel display template.

    New var hoverUrl that it points to TechNet_Content_HoverPanel border=

    Now that I had created a custom hover panel display template, it was time to move on to the exciting stuff: adding custom properties.

     

    How to modify a hover panel display template to show values from custom managed properties

    In my Search Center scenario, the default hover panel contained almost no additional information about the search result.

    Content in the default hover panel

    I wanted to add the values from the following four site columns to the hover panel:

    • GUID/UUID
    • Internal Writer
    • Status
    • Submission Contact

    The screenshot below shows how these values are maintained for an individual item in our internal list.

    List item in internal list

    When adding custom properties to a hover panel, you have to add them to the item display template (highlighted in the illustration below).

    I will say this again, because this is not really intuitive: When adding custom properties to a hover panel, you have to add them to the item display template.

    Result type specific item display template

     

    To display custom properties in the hover panel, here’s what you should do:

    1. Find the managed property names of the site columns that you want to use. I showed you how to do this in a previous blog.
    2. Open the item display template that contains the reference to the hover panel display template that you want to customize. In the item display template, in the ManagedPropertyMapping tag, use the following syntax to add the custom managed properties that you want to display:
      '<Current item property name>':<Managed property name>'

    In my scenario, I added four managed properties to the TechNet content item display template.

    Properties added to item display template

    1. NOTE: You do not need to do this step if you are using SharePoint Online.
      Go to Site settings --> Search Result Types. Notice that a Property Sync alert is displayed.

    Property Sync alert displayed

    This alert is displayed because we have added new managed properties to an item display template (we did this in step 2). To update the result types with the newly added managed properties, choose Update.

    Update managed properties

    IMPORTANT! If you don't do the update, the newly added managed properties will not display in your hover panel.

    1. Open the hover panel display template that you want to modify, and use HTML to add the custom properties that you want to display.

      In my scenario, I opened the TechNet_Content_HoverPanel. The screenshot below shows how I added my four custom properties.

    Four custom Properties added to hover panel display template

    1. Save the file.

    By doing a new search and hovering over a search result, I saw that the four custom properties were now displayed. Nice!

    Four custom properties displayed in the hover panel

    However, I wasn’t quite satisfied. The values for Internal Writer and Submission Contact were displayed differently. The screenshot might not show it clearly, but hopefully you can see that the value for Internal Writer was displayed nicely, but the value for Submission Contact was very long and contained an ugly GUID.

    Both these two values come from a site column of type Person or Group. The difference is that in the site column settings, Internal Writer is configured to show Name, whereas Submission Contact is configured to show Name (with presence).

    Two different site column settings

     

    To make Submission Contact display correctly, I copied the HP.GetAuthorsHtml method that is used by the Item_CommonHoverPanel_Body display template to display authors.

    HP.GetAuthorsHtml method used in custom hover panel display template

    And now the hover panel was starting to look really good.

    Final hover panel rendering

    But to make the hover panel even more helpful, I wanted to add an action to the bottom of the hover panel.  I’ll show you how to do this this in my next blog post.


     

    Next blog post in this series
    How to add a custom action to the hover panel

     

  • Stage 3: How to enable a list as a catalog

    This is a blog post in the series “How to set up a product-centric website in SharePoint Server 2013”.  In this series, I'll use data from a fictitious company called "Contoso" to show you how to use search features to set up a website based on product catalog data.
    Note: Most of the features described in this series are not available in SharePoint 2013 Online.

    For an overview of the blog posts in this series, go to How to set up a product-centric website in SharePoint Server 2013.

     

    Quick overview

    As described in Stage 2: Import list content into the Product Catalog Site Collection, we've imported content about Contoso's product line into the Products list. To display this product information in our Publishing Portal (the Contoso website), we now have to enable the Products list as a catalog.

    These are the steps we'll take to enable a list as a catalog:

    1. Go to catalog settings page.
    2. Enable catalog sharing.
    3. Enable anonymous access.
    4. Define website navigation hierarchy.
    5. Define values to use in the URL to an individual product.

     

    Start stage 3

     

    1. On the Products list, from the LIST tab, click List Settings.

    List Settings

    On the Settings page, click Catalog Settings.

    Catalog Settings

     We'll define several things on the Catalog Settings page. I'm going to break all of this down into individual chunks.

     

     

     

    2. For Catalog Sharing Select Enable this Library as a catalog.

    Catalog Sharing

    By selecting this, we'll be confirming that content from the Products list should be added to the search index.

    Catalog sharing

     

    3. For Anonymous Access, click Enable anonymous access, and then click Make Anonymous.

    Anonymous Access

    By doing this, we'll be granting anonymous visitors, that is, visitors who aren't logged on to Contoso's website, access to view content from this list.

    Note that we're not granting visitors access to the list itself. All we're doing is granting anonymous visitors access to view the catalog content from the search index. Anonymous visitors will never be able to see the actual Products list.

    Anonymous visitors view search index content

    4. For Navigation Hierarchy (this section shows up after Catalog Item URL in the UI, but I prefer to tell you about this one first), select Item Category.

    Navigation Hierarchy

    In my previous blog post, Stage 2: Import list content into the Product Catalog Site Collection, I showed you how the managed metadata column Item Category is tied to the Product Hierarchy term set.

    Item Category and Product Hierarchy term set

    By selecting Item Category here, we're in fact specifying that the navigation on our publishing site (the Contoso website) will be determined by the structure in the Product Hierarchy term set.

    In the next screenshot, notice that the structure in the Product Hierarchy term set, matches the navigation on the Contoso website.

    Term driven navigation

     

    The terms from the Product Hierarchy term set will also be used to create a friendly URL for our category pages on the publishing site (the Contoso website). For example, the URL to the page displaying camcorders is http://www.contoso/cameras/camcorders, and the URL to the page displaying camera accessories is http://www.contoso/cameras/camera-accessories.

     Friendly URL

     

    5. For Catalog Item URL Fields, select the list columns that should be used to create a unique URL to a product. For Contoso, we'll use Group Number and Item Number.

     

     Catalog Item URL Fields

    The URL to an individual product will be composed of the terms that we specify in Navigation Hierarchy (previous step), and the values from the fields we specify as Catalog Item URL Fields. When selecting these fields, we should use at least one field that contains a product unique value, because we want to use this unique value in the product URL. By doing this, the URL to the product Fabricam Home Movimaker M300 will be different from the URL to the product Fabricam Home Movimaker M400.

    For Contoso, the unique identifier of a product is the value in the Item Number column. We also want to use the value of the Group Number column, so we'll add them both (I'll explain why I also want to use Group Number in a later post).

     Friendly URL to a product

     Our final Catalog Settings page looks like this:

     Final Catalog Settings page

     So now that we have set all these specifications, it's time to crawl the catalog.

     

     

     

    Next blog article in this series
    Stage 4: Set up search and enable crawling of your catalog content

     

    Additional resources