How SQL Server distributes queries between Database Engine and FTS Engine

full-text-search

When a client submits a query to the database server, then SQL Server and its Database Engine parses, compiles, and execute those queries.

But, if the client's application submits a query which consists some of Full-Text-Search clause, than SQL Server uses FTS Engine to compiles and execute query.

What is tricky for me is whether the entire FTS query is executed by FTS Engine or divided somehow in two parts that are sent to Database Engine and FTS Engine, respectively.

Can someone explain to me what is really done at heart of the SQL Server in case of a SQL query that includes FTS clauses?

Best Answer

You might find the diagrams and explanation found in the SQL Server 2008 R2 documentation useful. (Nothing has fundamentally changed recently on Full Text processing.)

https://technet.microsoft.com/en-us/library/ms142541(v=sql.105).aspx

Quoting from that explanation: "The query processor compiles and executes SQL queries. If a SQL query includes a full-text search query, the query is sent to the Full-Text Engine, both during compilation and during execution. The query result is matched against the full-text index."

So you might view the Full Text search as a 'function' that returns its portion of the query from the Full Text Engine, then joins with any operators from the Database Engine that may also be part of the overall SQL Server query.