
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 processor compiles and executes SQL queries. For more information, see Configure and Manage Stopwords and Stoplists for Full-Text Search. Stoplist objects contain a list of common words that are not useful for the search. For more information, see Configure and Manage Thesaurus Files for Full-Text Search.

These files contain synonyms of search terms. It is responsible for scheduling and driving the population of full-text indexes, and also for monitoring full-text catalogs. The full-text gatherer works with the full-text crawl threads. These tables contain the data to be full-text indexed.įull-text gatherer. The SQL Server process uses the following components for full-text search: The components are described after the illustration. These components and their relationships are summarized in the following illustration. These two processes contain the components of the full-text search architecture. For information about setting the service account for this service, see Set the Service Account for the Full-text Filter Daemon Launcher.

Therefore, the FDHOST launcher service must be running for full-text indexing and full-text querying to work. The fdhost.exe processes are created by an FDHOST launcher service (MSSQLFDLauncher), and they run under the security credentials of the FDHOST launcher service account. The filter daemon host process (fdhost.exe).įor security reasons, filters are loaded by separate processes called the filter daemon hosts.

Full-Text Search architectureįull-text search architecture consists of the following processes: A LIKE query against millions of rows of text data can take minutes to return whereas a full-text query can take only seconds or less against the same data, depending on the number of rows that are returned. Furthermore, a LIKE query against a large amount of unstructured text data is much slower than an equivalent full-text query against the same data. Also, you cannot use the LIKE predicate to query formatted binary data. In contrast to full-text search, the LIKE Transact-SQL predicate works on character patterns only. Compare Full-Text Search queries to the LIKE predicate WHERE CONTAINS(candidate_resume,"SQL Server") AND candidate_division = 'DBA' įor more information, see Query with Full-Text Search. Recruitment scenario-searching for job candidates that have experience working with SQL Server: SELECT candidate_name,SSN WHERE CONTAINS(product_description, "Snap Happy 100EZ" OR FORMSOF(THESAURUS,'Snap Happy') OR '100EZ') For example:Į-business-searching for a product on a website: SELECT product_id However, the search goals of a given business scenario influence the structure of the full-text queries. For example, searching for "Aluminum" or "aluminum" returns the same results.įull-text queries use a small set of Transact-SQL predicates ( CONTAINS and FREETEXT) and functions ( CONTAINSTABLE and FREETEXTTABLE).

Words or phrases using weighted values ( weighted term)įull-text queries are not case-sensitive. Synonymous forms of a specific word ( thesaurus) Inflectional forms of a specific word ( generation term)Ī word or phrase close to another word or phrase ( proximity term) One or more specific words or phrases ( simple term)Ī word or a phrase where the words begin with specified text ( prefix term) These queries can search for any of the following: Full-Text Search queriesĪfter columns have been added to a full-text index, users and applications can run full-text queries on the text in the columns. A match occurs when a target document contains all the terms specified in the full-text query, and meets any other search conditions, such as the distance between the matching terms. A full-text query returns any documents that contain at least one match (also known as a hit). Full-text queries can include simple words and phrases or multiple forms of a word or phrase. Each full-text index indexes one or more columns from the table, and each column can use a specific language.įull-text queries perform linguistic searches against text data in full-text indexes by operating on words and phrases based on the rules of a particular language such as English or Japanese. These columns can have any of the following data types: char, varchar, nchar, nvarchar, text, ntext, image, xml, or varbinary(max) and FILESTREAM. OverviewĪ full-text index includes one or more character-based columns in a table. If you didn't select Full-Text Search when you installed SQL Server, run SQL Server Setup again to add it. Full-Text Search is an optional component of the SQL Server Database Engine.
