Learn more about SQL Server tools

mssqltips logo
 

Tutorials          DBA          Dev          BI          Career          Categories          Webcasts          Whitepapers          Today's Tip          Join

Tutorials      DBA      Dev      BI      Categories      Webcasts

DBA    Dev    BI    Categories

 

How to use Metadata as search parameter in Advance Search Web Part


By:   |   Read Comments   |   Related Tips: > Sharepoint

"SQL Server in The Cloud" - click to register for this free webcast


Problem

In SharePoint 2010, one of the most frequent enhancement requests that come from clients is to add a custom property to property restrictions in the (Out of The Box) advance search box.

By default, properties like Author, Description, Name and others are provided in property restrictions. But how about a case users want to search documents of a particular department only or some other field criteria?

Solution

SharePoint 2010 by default doesn't provide a direct way to add site columns in search parameters searching. But with a little configuring, we can add this functionality.

Lets follow the steps below:

  • Add a site Column and data to a list/library.
  • Make a Crawled Property of that Site column.
  • Create a mapped property map to the Crawled Property that was created.
  • Add a mapped property to the advance search web part to avail users to select it in the search web part.

Let's start by adding a site/list/library column. To add a site column go to a List or Library, then go to the Ribbon and click on Create Column. Give it a meaningful name (like "OrganizationDepartment"). Select type as "Text" and click "OK".

organizations docs

After adding a site/list/library column, we need to create a crawled property for it.

Go to Central Administration -> Application Management -> Search Service Application -> Crawling Section -> Content Sources.

crawling

To search the data of our site/list/library column, we need to crawl the content so it can be discovered during the search. Select the appropriate content source, open the context menu and click on "Start Incremental Crawl".

start incremental crawl

Once it is finished, go back to the search service application and go to:

Queries and Results -> Metadata Properties.

metadata properties

Select "Crawled Properties":

crawled properties

One can search the crawled properties (in our case by "Organization") Below we see a property named "ows_OrganizationDepartment(Text)".

managed properties

If you see the above property, we're halfway there.To create a mapped property, go to Central Administration -> Application Management -> Search Service Application -> Queries and Results -> Metadata Properties. Click on "New managed property".

new managed property

In next screen, we need to some additional fields as follows:

Property name: DocsDepartment

Property Type: Text

We also need to select the crawled properties (single or all). In our case, we will map to a single property. Click on Add Mapping.

property name

Search for a crawled property like "Organization" and you would find the property "ows_OrganizationDepartment(Text). Select the property and click "OK".

crawled property selection

After that, we go back to the property creation scene.

Make sure that the options "Include values from a single crawled property based on the order specified" and "Allow this property to be used in scopes" are selected. Click OK.

include values

Now go to the Advanced search web part page and edit the advanced search web part. Under the properties section, click on Properties and edit.

advanced search box

We need to add our property to "PropertyDefs" and to all result types like "All Results" in which we want our parameter to be used. After adding, click Apply and OK and close the web part properties.

property defintion

Now if you go to Property Restrictions, you can see the newly added property "DocsDepartment".

add property restrictions

Go ahead and use the property for searching results. If everything goes fine, you will get results like the one below:

department test

This way you can use any metadata as a search parameter to get desired results.

Next Steps


Last Update:


next webcast button


next tip button



About the author
MSSQLTips author Rahul Mehta Rahul Mehta is a Project Architect/Lead working at Tata Consultancy Services focusing on ECM.

View all my tips





Post a comment or let the author know this tip helped.

All comments are reviewed, so stay on subject or we may delete your comment. Note: your email address is not published. Required fields are marked with an asterisk (*).

*Name    *Email    Email me updates 


Signup for our newsletter
 I agree by submitting my data to receive communications, account updates and/or special offers about SQL Server from MSSQLTips and/or its Sponsors. I have read the privacy statement and understand I may unsubscribe at any time.



    



Learn more about SQL Server tools