Out-of-the-Box Options
Let's begin with basic options available to everyone using at least MOSS. Following are simple descriptions of the options and how you can use them.
Content Sources. Content Sources denote the items that SharePoint's crawling engine looks at and creates a searchable index for. Keep in mind, these can be broken out for scheduling and different rules, even among internal SharePoint locations, helping with time management and handling large data stores.
Managed Properties. Managed Properties are the metadata items that the crawling engine finds when viewing your data. They even pick up custom columns in SharePoint lists. You can roll these up into custom properties and use them as rules and filters in search scopes and advanced searching techniques.
Search Scopes. You can tell SharePoint to limit the scope of a search based on managed property (equal or not equal to), by locations, and by content class. The content class is a little-known property in SharePoint that represents an item's internal classification—for example, List Type and Item Type. You can use these properties to create scopes that will return only web pages instead of list items or documents. A significant number of other classification options are also available.
Thesaurus. Many administrators aren't aware of the SharePoint thesaurus, a system-level XML file that lets you create global replacements for common terms. This feature removes the burden on site-collection administrators of creating custom keywords for each new site collection when common domain-level terms need to have synonyms in their searches.
Keywords and Best Bets. Critical and often overlooked, these items give the individual site collection the power to create keywords with any number of synonyms as a search replacement. The real benefit is the ability to create Best Bets, which let users add links to any content that will automatically appear at the top of search results when a keyword or synonym appears in the search terms.
Custom search pages. The makeup of the standard Search Results page has a significant number of web parts that represent a large number of options for the end user. I’ll discuss just the core Search Results web part. This web part is essentially just a large Extensible Stylesheet Language (XSL) transform code block. It takes the Extensible Markup Language (XML) search results and transforms it to whatever you, the end user, and designer put in place.
One of the best ways to evaluate your options is to look at the raw XML returned from your search to see what data is actually available for designing a custom search page. You'll see that many properties are included—specifically, the custom properties you've defined in your Shared Services Provider (SSP). This step lets you include additional data, group the data and add custom links based on If statements, and so on. Depending on the type of data you expect to return in your results, you can create very specific views of this data.
Understand that you aren't limited to the single Search Results page offered by SharePoint's out-of-the-box search center. You can create as many custom pages as you want, with very specific criteria and results layouts. Simply linking to them from appropriate locations within your organization can direct people to more focused search locations.
Third-Party or In-House Tool Options
Although there are many additional out-of-the-box enterprise search-management approaches, you need to be aware of additional tools and third-party components. The tools below are in no particular order, and many are open-source.
User ratings. With the advancement of Web 2.0—and its focus on socialization, networking, and data-interaction freedom—SharePoint content needs a boost to handle some of the requirements of this new environment. Thankfully, SharePoint is an easy platform to work with from a development perspective, and there are some free and inexpensive third-party web solutions that can do most of the work for you.
Rating content has become crucial to the interactive style of modern technical communication. Not all enterprise data needs or warrants rating from the user community, but a large amount does. You can download and install functionality to provide a common star-rating column for any SharePoint list or library. The tools are intelligent enough to permit only a single rating by each user account, and they also support comments. Site owners can add this feature to only the lists and libraries they choose. The ratings are simple and easy to add to search results pages, with filtering based on minimum star rating.
Facets. There are free open-source tools available that allow dynamic pivoting on properties returned in the Search Results XML file. You can customize the tools to add or limit the specific properties that are available for pivoting in each search result. They are 100 percent UI-based, letting you select links to continue drilling down and filtering on as many properties as you want. The software shows you which filters you've applied and lets you remove them individually at any time. You can add these web parts to any Search Results page.
Federation. In the summer of 2008, Microsoft released its Infrastructure Update for MOSS, which included the ability to call external (or internal) search locations and return the results to a web part. You can use almost any search engine to run queries in real time and return the results to SharePoint. This becomes a powerful tool when you're creating single-location search centers that can simultaneously search all internal search engines and return the results from a single query. With Federation, you can even search SharePoint search scopes specifically by using a federated location, thus querying multiple SharePoint search scopes in a single query but segmenting their results into usable buckets. These federated search web parts can also search external search engines if you need to include results from public locations. (Be aware that your users will be broadcasting search terms to public locations.)
Export data into SharePoint. Although this capability might seem backwards from a search perspective, consider exporting data from other line-of-business applications into HTML pages and importing them into SharePoint at regular intervals. Think about some potential wins: Owners of other applications get to choose what data to query and export, they can design a metadata scheme to apply to their data as it's imported into SharePoint, they choose the intervals at which data is exported, and they control the layout and structure of how their data is viewed. Using some of the SharePoint web services or relatively simple programming can accomplish the import tasks. Therefore, SharePoint can have native content added to lists and libraries and crawl it as local content instead of using the Business Data Catalog or Federated Search to query external data held within other applications.
Custom web parts. With four or five days of development, you can build a custom web part that queries an internal database, looks up metadata for common document details within your organization, and uploads a document with routing rules. If you have proprietary business data that would be beneficial to apply as metadata to SharePoint documents, a custom tool can be powerful. Essentially, the project queries other internal databases to look up pertinent data that you want to apply to documents being uploaded to SharePoint. With some basic business logic, this web part can look up linked data based on user selections, then upload and route the document based on the applied metadata. This solution lets you apply important properties to your SharePoint content without requiring your users to enter all the data by hand.
BDC. Although entire books have been written about the Business Data Catalog (BDC), it's worth mentioning the power that it can hold from a data-querying and -retrieval perspective. The BDC data can be quite interactive and used in various web parts, can connect to other web parts for filtering, and can be added to lists as custom columns. Ultimately, it can be read in a very similar fashion to list data in SharePoint. What we care about is how it can be searched. The BDC can connect to internal applications that can be accessed via an ADO.NET provider or web services. Data can be set up as a content source in SharePoint (Enterprise version) for crawling and indexing and can then be searched and returned via standard SharePoint searching capabilities. This can all be done without coding, yet a significant amount of XML must be written. A few excellent tools in the marketplace can help you create these XML definition files.
Available Tools
I want to call out some tools that are available as free downloads. Most of the options outlined above are available in some form at CodePlex. There are various versions, each with strengths and weaknesses. I encourage you to set up a test environment and test them. The site contains almost all the tools and utilities you'll need to help with search; I use them regularly. Here are some additional items and ideas to consider:
- Viewing tool—This tool lets you load and view all your SharePoint sites from a tree view, starting at a web application and drilling down to properties on a list item.
- Search tool—This tool lets you query the engine directly via an external UI.
- Tool for modifying relevancy rankings and testing the results.
- XSL samples from other people in the community—These can show you what others are building for search results pages.
- Adding wildcard searching options.
- Better management of searches based on custom properties.
- Regular Expression searching tools—These let you create custom regular expressions to search content in SharePoint. They're ideal for uncovering specific formats of data, such as credit card numbers, telephone numbers, and social security numbers.
Hopefully, some of these ideas will empower you and your organization to begin making changes to help improve and spice up your SharePoint search results. Happy searching!