Click here to Skip to main content
6,305,776 members and growing! (16,397 online)
Email Password   helpLost your password?
Database » Database » SQL Server     Beginner License: The Code Project Open License (CPOL)

SQL SERVER - 2008 - Creating Full Text Catalog and Full Text Search

By pinaldave

First article on topic - SQL SERVER - 2008 - Creating Full Text Catalog and Full Text Search
SQL, Windows, SQL Server, Architect, DBA, Dev, SysAdmin
Posted:10 Sep 2008
Views:9,632
Bookmarked:14 times
Announcements
Loading...
 
Search    
Advanced Search
printPrint   Broken Article?Report       add Share
  Discuss Discuss   Recommend Article Email
5 votes for this article.
Popularity: 2.67 Rating: 3.82 out of 5
1 vote, 20.0%
1

2
1 vote, 20.0%
3
1 vote, 20.0%
4
2 votes, 40.0%
5

Introduction

Full Text Index helps to perform complex queries against character data.  These queries can include word or phrase searching. We can create a full-text index on a table or indexed view in a database. Only one full-text index is allowed per table or indexed view. The index can contain up to 1024 columns. This feature works with RTM (Ready to Manufacture) version of SQL Server 2008 and does not work on CTP (Community Technology Preview) versions. 

To create an Index, follow the steps:

  1. Create a Full-Text Catalog
  2. Create a Full-Text Index
  3. Populate the Index

1) Create a Full-Text Catalog

Full-Text can also be created while creating a Full-Text Index in its Wizard.

2) Create a Full-Text Index

3) Populate the Index

As the Index is created and populated, you can write the query and use it in searching records on that table which provides better performance.

For example, we will find the Employee Records that have "Marking" in their Job Title.

FREETEXT( ) is the predicate used to search columns containing character-based data types. It will not match the exact word, but the meaning of the words in the search condition. When FREETEXT is used, the full-text query engine internally performs the following actions on the freetext_string, assigns each term a weight, and then finds the matches.

  • Separates the string into individual words based on word boundaries (word-breaking)
  • Generates inflectional forms of the words (stemming)
  • Identifies a list of expansions or replacements for the terms based on matches in the thesaurus

CONTAINS( ) is similar to Freetext but with the difference that it takes one keyword to match with the records, and if we want to combine other words as well in the search, then we need to provide the "and" or "or" in the search, else it will throw an error.

USE AdventureWorks2008
GO

SELECT BusinessEntityID, JobTitle
FROM HumanResources.Employee
WHERE FREETEXT(*, 'Marketing Assistant');

SELECT BusinessEntityID,JobTitle
FROM HumanResources.Employee
WHERE CONTAINS(JobTitle, 'Marketing OR Assistant');

SELECT BusinessEntityID,JobTitle
FROM HumanResources.Employee
WHERE CONTAINS(JobTitle, 'Marketing AND Assistant');
GO

Conclusion

Full text indexing is a great feature that solves a database problem, the searching of textual data columns for specific words and phrases in SQL Server databases. Full Text Index can be used to search words, phrases and multiple forms of word or phrase using FREETEXT() and CONTAINS() with "and" or "or" operators.

Reference

History

  • 10th September, 2008: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

pinaldave


Member
Pinalkumar Dave is Microsoft SQL Server MVP and author of over 900 SQL Server articles. He has over six years experience as Sr. Project Manager and Principal Database Administrator in MS SQL Server 2008/2005, .NET (C#) and ColdFusion MX. He has a Masters of Science degree in Computer Networks, along with MCDBA, MCAD(.NET) and ColdFusion Advanced MX Certifications.

Pinal Dave is also Microsoft MVP for SQL Server area.
Visit : http://www.SQLAuthority.com
Occupation: Founder
Company: http://blog.SQLAuthority.com
Location: India India

Other popular Database articles:

Article Top
You must Sign In to use this message board.
FAQ FAQ 
 
Noise Tolerance  Layout  Per page   
 Msgs 1 to 1 of 1 (Total in Forum: 1) (Refresh)FirstPrevNext
GeneralNothing regarding CONTAINSTABLE and Ranking? PinmemberAndrei Rinea15:16 15 Sep '08  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 10 Sep 2008
Editor: Deeksha Shenoy
Copyright 2008 by pinaldave
Everything else Copyright © CodeProject, 1999-2009
Web17 | Advertise on the Code Project