Searching Business Data with MOSS 2007 Enterprise Search
Presenter: Corey RothEnterprise ConsultantStonebridge
Blog: www.dotnetmafia.com
Corey Roth
Consultant for Stonebridge Worked in Consumer Electronics, Travel, Advertising,
and Energy industries Currently doing MOSS development specializing in
Enterprise Search OSU Graduate Microsoft Award for Customer Excellence (ACE)
Winner E-mail: [email protected] Blog: www.dotnetmafia.com (mirrored on
sharepointblogs.com)
Why Enterprise Search? Allows indexing and searching of business data
from multiple systems with little or no code. Through Business Data Catalog (BDC) can index
non-SharePoint applications BDC can index data in SQL Server, Web Services,
and other database providers Can also be used to index Active Directory (People
Search) Designed to search text – Other data types can work
but there are limitations
Business Data Catalog
Abstraction Layer between MOSS and Business Applications Provides support for displaying and
searching data from databases and web services
Designed for Readonly access Inserts/Updates/Deletes are possible but
there are limitations Not a replacement for a DAL
Security Security is required for the following
accounts Domain Accounts are recommended
Content Access – Defined in Search Settings; Needs read access to database table; Needs BDC Execute permission
Shared Service Provider Account – Used for profile pages; Needs BDC Execute/Select in Clients permission
Administrators – Specify an account with full control or you will run into issues
End Users – Need BDC Execute/Select in Clients permission
Steps1. Create MetaData Model for Business
Application2. Import MetaData3. Create Content Source4. Crawl Business Data5. Create Managed Properties and map them to
Crawled Properties6. Crawl Business Data (Again)7. Create Search Scope
Step 1 - BDC Metadata Model
XML file which maps entities from databases or web services to the BDC
Defines default actions when a search result is clicked
Requires a unique id in the data source* Three types of methods
Finder - Returns all records from a table or view SpecificFinder - Returns details for a specific
record IDEnumerator - Used by Enterprise Search to
determine rows to index
BDC Metadata Model Version Number – Increment every time you import
during development LobSystemInstance element
AuthenticationMode – RevertToSelf AccessControlList element – Specifies Security (can
also do through SSP) Action element – Sets a default action (sets a URL to
go for that item)
BDC Tools
Tools can be useful for generating XML MetaData schema
Office SharePoint Server SDK BDC Meta Man MOSS BDC Design Studio Many Others Available Now
Start Small
Crawls over entire tables can take a long time
Avoid crawling full tables when testing Modify Schema file to crawl partial tables
i.e.: SELECT TOP 50…
Demo
Step 3 - Content Sources
Content Sources can map to one or more BDC Application Definition
Used to start and stop content crawls Typically map one application definition to
one content source
Step 4 - Crawling
Uses IDEnumerator method to get list of rows to import.
Calls SpecificFinder method for each Id returned by IDEnumerator
Stores columns from table or web service as crawled properties
Demo
Step 5 - Managed Properties
Out of the box, a search will do a full-text search on all text properties
Can be used to create advanced search pages
After first crawl, columns are available as crawled properties
Map crawled properties to managed properties for more specific searches
Non-text types are not indexed by default
Demo
Step 7 - Scopes
Scopes are used to specify different types of content to search (i.e.: Products, People, Sales, etc.)
Scopes can be defined by Content Source or Managed Property
Typically map to a Content Source to make it easier to test application definitions
Can be displayed in drop down lists in conjunction with the SearchBox web part
Search Center Out of the box site and web parts for
searching and displaying results Can be created using the Site Settings menu
on the root web site by enabled certain features
Supports keyword search only (no wildcard) For wildcard search consider a Search
Center Replacement such as Ontolica or write your own search page
Keyword Syntax Used to search by Managed Properties Can specify Scopes (Scope:”MyScope”) Can be passed via URL to CoreResultsWebPart (k
Query String parameter) AND implied between each keyword (i.e.:
Color:”Red” Size:”M” is the same Color=“Red” AND Size=“M”)
OR implied when multiple keywords of the same managed property used (i.e.: Color:”Red” Color:”Blue” translates to Color=“Red” OR Color=“Blue”)
Search CenterFeatures Required
Site Collection Features Office SharePoint Server Enterprise Site Collection
features – BDC Web Parts Office SharePoint Server Search Web Parts – Enterprise
Search Web Parts Office SharePoint Server Publishing Infrastructure – Not
necessarily required unless you want to activate the feature below
Site Features Office SharePoint Server Publishing – Adds Create Site
menu item and publishing features (not required but convenient)
Search CenterWeb Parts
SearchBox CoreResultsWebPart BestBets Paging AdvancedSearch
Search CenterCustomization
CoreResultsWebPart displays search results Columns property – XML specifying
Managed Properties XSL – Transform the HTML output of the
search results Column names are specified in lower case in
XSL (i.e.: Color will be color)
Deployment and Migration
MOSS has no built in way to move Enterprise Search settings!
SharePoint Shared Services Provider Creation (SSSPPC) can help (see blog for more info)
ReferencesDot Net Mafia Bloghttp://www.dotnetmafia.com
Office SharePoint Server SDKhttp://msdn2.microsoft.com/en-us/library/ms550992.aspx
Faceted Search Web Partshttp://www.codeplex.com/FacetedSearch
SharePoint Shared Services Provider Creationhttp://www.codeplex.com/SSSPPC
BDC Meta Manhttp://www.bdcmetaman.com
Ontolicahttp://www.ontolica.com
Questions?
Thanks
Corey [email protected] www.dotnetmafia.com