Module 8: Querying
Full-Text Indexes
Overview
Introduction to Microsoft Search
Service
Microsoft Search Service Components
Getting Information About Full-Text
Indexes
Writing Full-Text Queries
Introduction to Microsoft Search
Service
Provides Text-based Searches in SQL
Server
Complex searches on unstructured text
data for words and phrases
More powerful than LIKE operator and
wildcards
Available in Other Microsoft Products
Indexing Service, Exchange 2000,
Commerce Server
Microsoft Search Service
Components
Search Service Structures
Full-text index
Keeps track of significant words used in
a table
Requires unique key column or primary
key
Full-text catalog
Is a collection of full-text indexes
Microsoft Search Service Functions
Indexing
Querying
Getting Information About Full-Text
Indexes
Using System Stored Procedures
sp_help_fulltext_catalogs
sp_help_fulltext_tables
sp_help_fulltext_columns
Using Transact-SQL Functions
Use Transact-SQL functions to obtain
information about full-text properties
USE northwind
SELECT
DATABASEPROPERTY('Northwind','IsFullTextEnabled')
GO
Writing Full-Text Queries
CONTAINS Predicate
FREETEXT Predicate
CONTAINSTABLE and FREETEXTTABLE
Functions
Using Full-Text Keywords
CONTAINS Predicate
Inflectional Form of a Specific Word
Word or Phrase Beginning with
Specific Text
Word or Phrase near Another Word or
Phrase
One or More Specific Words and
Phrases Example 1
SELECT plant_id, common_name, price
Words
FROM plants or Phrases with Weighted
WHERE CONTAINS( *, ' "English Thyme" ' )
Values
GO
FREETEXT Predicate
Searches on Words, Phrases, and
Sentences Extracted from Initial Query
Less Precise Than the CONTAINS
Predicate
SELECT *
FROM news_table
WHERE FREETEXT( description,
'"The Fulton County Grand Jury said Friday an
investigation of Atlanta‘s recent primary
election produced no evidence that any
irregularities took place."')
GO
CONTAINSTABLE and
FREETEXTTABLE Functions
Using CONTAINSTABLE and
FREETEXTTABLE
Return a table
Return column that contains full-text key
values
top_n_by_rank argument
Choosing Which Search Condition or
Function to Use
Use the CONTAINS and FREETEXT
predicates in any search condition
Use the CONTAINSTABLE and
Using Full-Text Keywords
USE northwind CONTAINS and FREETEXT Predicates
SELECT Description
FROM Categories
WHERE CategoryName <> 'Seafood‘
AND CONTAINS(Description, ' sauces AND seasonings ')
GO
CONTAINS Within a Subquery
USE pubs
SELECT T.title, P.pub_name
FROM publishers AS P
INNER JOIN titles AS T ON P.pub_id = I.pub_id
WHERE P.pub_id = (SELECT pub_id FROM pub_info WHERE CONTAINS
(pr_info, ' moonbeam AND ontario AND "flying saucer" '))
GO
Recommended Practices
Use Full-Text Indexes on CHAR, NCHAR, VARCHAR,
NVARCHAR, TEXT, NTEXT and IMAGE Data Types
se the Full-Text Index and Catalog Properties for Troublesh
Use the top_n_by_rank Argument to Restrict Result Set S
Lab A: Querying Full-Text Indexes
Review
Introduction to Microsoft Search
Service
Microsoft Search Service Components
Getting Information About Full-Text
Indexes
Writing Full-Text Queries