ben tedder : code things

Create a Search Scope for a Sharepoint 2010 List or Library

Screencast tutorial (notes below):

This tutorial explains how to create a search scope for a SharePoint 2010 list or library. As a side note, you may be interested to read how to create a jQuery instant filter for a list or CQWP.

Step 1: Go to Site Actions > Site Settings (make sure you're in the root site), and click "Search scopes".

Search Scope Settings

Step 2: Click "New Scope" to create a new scope to load in a sub-page of the site.
New Search Scope

Step 3: Nothing really needs to be set on this screen except the title. If you want this to be a default scope that shows in the normal scope dropdown, make sure and select the "Search Dropdown" box. Otherwise, everything can be set in your custom page.
Edit Search Scope Settings
Step 4: In the next screen you'll see your newly created scope under "Unused Scopes". There are no rules attached to this scope yet, so let's go create some. Click "Add rules".
Add rules to SharePoint Search Scope
If you want this search scope to query a specific list (for instance, I wanted it to troll through the "newlist" list), enter the address of the list in the "folder" textbox. Also, if you check "require" it will designate that only this list will be searched.
Search Scope rule settings
I'm not exactly sure how often the scopes update, but it seems to be about every 15 minutes. I assume it depends on how your server is setup.

Step 5: Next, create a new page. In this page, add some webparts. Add the following 3 webparts:

  • Search Box
  • Search Core Results
  • Search Paging

Search Box
When you add the search box webpart, the only thing I would change is the page which displays the result. I want to display the results on this page, not on the typical search page. So I just put the address of the page I'm on. That way it will send the search results to this page's results webpart.

Search Core Results
Here is where you need to input the scope. Edit the webpart and look for the "location properties" section. Under "Scope" type the name of your scope (human readable is fine).

Click OK, reload the page, do a search, and now the search results should only show items in your list! Tada!

If you liked this article, check out how to create a jQuery instant filter.