Creating Search Queries Programmatically by using the Search Object Model in SharePoint Server 2007
Summary: Learn how to programmatically create search queries by using the Microsoft Office SharePoint Server 2007 object model.
Applies to: Microsoft Office SharePoint Server 2007
Patrick Tisseghem, U2U
You can execute search queries programmatically by either working directly with the object model within the context of Microsoft Office SharePoint, or when working remotely, by using the Search Web service. The Office SharePoint Server 2007 object model offers a new set of classes you can use to program the execution of a search query.
For the following code to work, you need a reference to the Microsoft.Office.Server.Search.dll. The main namespace used within the sample code is Microsoft.Office.Server.Search.Query.
Constructing a Keyword Query String
Using the keyword syntax to construct the query string is straightforward. To construct the query string, prefix the keywords you want to exclude from the search results with a hyphen (-) character; prefix the keywords you want to include in the search results with a plus (+) sign. You can also add property criteria. Following is a query that when executed returns all documents containing the keyword "Business" but excluding the documents written by "Brian".
Constructing a FullText Query String
A query string formulated by using an extension of the SQL language allows a more powerful search request that supports full-text search and more control on the returned fields, and that allows the use of search scopes and properties in conditions. Following is the previous query formulated by using the FullText query string.
Executing a Keyword Query String
You execute the query string you formulate with the keyword syntax by creating an instance of an object of the KeywordQuery class, and then by providing it with the context of the Shared Services Provider (SSP) within the server farm. You can do this with an instance of the SPSite object. Next, you typically set one or more properties to configure the execution and assignment of the query string for the QueryText property. The Execute method returns a ResultTableCollection object that contains the search results. By using the ResultType enum, you have the option to filter the type of results you want and possibly bind them to a Windows–based or ASP.NET control.
Executing a FullText Query String
A query string formulated with the FullText query language follows the same flow of execution as the previous code example. However, now we use the FullTextSqlQuery class. The following example code shows another way to provide the SSP context in the constructor. This time, a reference to Microsoft.Office.Server.ServerContext does the job.
Microsoft Office SharePoint Portal Server 2003 contained a class named QueryProvider to execute search queries programmatically. This class is still available, but is now deprecated. Office SharePoint Server 2007 offers two new classes; both inherit from the Query base class:
The flow of execution is the same for both.
Length: 12:47 | Size: 8.85 MB | Type: WMV file