In one of our previous blog posts we took a look at the RootFinder property that is used within a Finder method to make the external content type indexable by SharePoint 2010 search.
In this blog post we’ll walk through how to setup the profile pages location, create a profile page for our external content type and set our external content type as a content source for SharePoint 2010 Search.
1) Open up your SharePoint Designer and create new external content type by creating all the methods available for your table. This will create a Finder method with the RootFinder property set which is what your external content type needs to be crawlable. I have used AdventureWorks2000’s Employee table for this blog post.
2) Go to the Central Administration and click on Manage Service Applications.
3) Choose Business Data Connectivity from available service applications
4) If you want your external content type to be searchable it needs to have a profile page. A profile page is used to display a single record of data from our external content type. In SharePoint 2007 profile pages for your entity were automatically created in the Shared Service Provider hosting site. In 2010 there is no location automatically set to host these pages. If you haven’t done this already, you’ll need to set the location. To do this simply click on the Configure button on the ribbon when viewing your external contents
In the window that pops up, type in the url of a SharePoint site that you would like to store your profile pages
5) Now you have set the url for where you want the profile pages to be created, the Create/Upgrade button will be enabled to allow you to create individual pages for your external content types. There are two ways for you to be able to create the profile page for your external content type
i) Select the checkbox next to the external content type you wish to create the profile page for and then click the Create/Upgrade button in the Profiles Pages section of ribbon.
ii) Hover your mouse over the external content type and a drop down control will appear. Click the down arrow and select ‘Create/Upgrade Profile Page’.
6) Now the profile page has been created we need to create a new content source based on our external content type and setup crawling. Please go to the service applications page(See Step 3) and click on Search Service Application.
7) Check the Default content access account.
It is important that this account has the necessary permissions on the external content type to execute the methods to retrieve data. Also depending on how you are authenticating through the BCS to your backend system you will need to ensure this account can access the data within the backend source.
9) Click on Content Sources of your search service application.
10) Click on New Content Source
11) Set the name of the content source, choose Line of Business Data as a type and decide whether you want to index all the BCS models you have deployed or just a particular one. It may be a good idea to setup a different content source for each model as you may want to setup different crawl schedules for each one depending on how often the data changes in each model.
12) When the new content source is created start a full crawl.
13) Refresh the page after few minutes and check the crawl log to make sure that everything passed ok and data is crawled.
14) If you have created a Team Site as the root site in your Site Collection you’ll need to go and create a Basic Search Center site for it. Once this has been done you can go to your Search Center site, search for ‘Duffy’ and a couple of results should appear for you of employees from the Employees external content type.
15, Click on one of the results and you are navigated to the profile page at the location that we set earlier
16, You can hook up this new Search Center to your Team Site by moving back to the root site and going:
Site Actions –> Site Settings –> Search Settings
and adding in the URL of your Search Center Site for the results page, and changing the Site Collection Search Dropdown Mode to be “Show, and default to ‘s’ URL parameter”
Hope you found this walk through useful