Full-Text Querying Support

SQL Server Architecture

SQL Server Architecture

Full-Text Querying Support

When Microsoft® SQL Server™ 2000 receives a Transact-SQL statement with a full-text construct, it retrieves the needed information from the Microsoft Search service using the full-text provider. Full-text constructs are the CONTAINS or FREETEXT predicates, or the CONTAINSTABLE or FREETEXTTABLE rowset functions. The full-text constructs can reference multiple columns in the full-text index if it is not known which column may contain the search conditions. The following illustration shows the flow of this process.

The steps involved in this process include:

  1. An application sends an instance of SQL Server a Transact-SQL statement with a full-text construct.

  2. The SQL Server relational engine validates the full-text construct by querying the system tables to determine if the column reference is covered by a full-text index. The relational engine reduces each SQL statement to a series of rowset operations, and uses OLE DB to pass the operations to underlying components, usually the storage engine. The relational engine transforms any full-text construct into a request for a rowset from the full-text provider instead of the storage engine. The rowset requested is the set of keys satisfying the search condition and a ranking indicating how well the data for each key met the search condition criteria. The command sent with the rowset request to the full-text provider includes the full-text search condition.

  3. The full-text provider validates the request and changes the search conditions to a form used by the querying support component of the Microsoft Search service. The request is sent to the search service.

  4. The querying support component uses the search engine component to extract the requested data from the full-text index. This data is then passed back to the full-text provider in the form of a rowset.

  5. The full-text provider returns the rowset to the relational engine.

  6. The relational engine combines all the rowsets it receives from the storage engine and the full-text provider to build the final result set it sends back to the client.

See Also

Full-Text Catalogs and Indexes

Full-text Indexes

Full-text Search

Microsoft Search Service