SQL Server Setup Help | |
Breaking Changes to Full-Text Search in SQL Server 2008 | |
See Also |
Backward Compatibility > SQL Server Database Engine Backward Compatibility > Full-Text Search Backward Compatibility > |
This topic describes breaking changes in full-text search. These changes might break applications, scripts, or functionalities that are based on earlier versions of SQL Server. You might encounter these issues when you upgrade. For more information, see Using Upgrade Advisor to Prepare for Upgrades.
Breaking Changes
The following breaking changes apply to Full-Text Search in SQL Server 2008.
Feature | Scenario | SQL Server 2005 | SQL Server 2008 | ||
---|---|---|---|---|---|
CONTAINSTABLE with user-defined types (UDTs) |
The full-text key is a SQL Server user-defined type, for example, |
The returned key is of the type assigned to the user-defined type. In the example, this would be char(1). |
The returned key is of the user-defined type. In the example, this would be MyType. |
||
top_n_by_rank parameter (of the CONTAINSTABLE and FREETEXTTABLE Transact-SQL statements) |
top_n_by_rank queries using 0 as the parameter. |
Fails with an error message stating that you must use a value greater than zero. |
Succeeds, returning zero rows. |
||
CONTAINSTABLE and ItemCount |
Delete rows from base table before it pushes changes to MSSearch. |
CONTAINSTABLE returns ghost record. ItemCount is not changed. |
CONTAINSTABLE does not return any ghost records. |
||
ItemCount |
Table contain null documents or type columns. |
In addition to indexed documents, documents that are null or that have null types are counted in the ItemCount value. |
Only indexed documents are counted in the ItemCount value. |
||
Catalog ItemCount |
Blob column with a NULL extension. |
It is counted in ItemCount of catalog |
It is not counted in ItemCount of catalog. |
||
UniqueKeyCount |
Querying a unique key count from a catalog, for example, two tables (table1 and table2) each with three words: word1, word2, and word3. |
UniqueKeyCount = 9. The following table summarizes how this value is attained: table1 = 3 EOF for full-text index of table1 = 1 table2 = 3 EOF for full-text index of table2 = 1 full-text catalog = 1 |
For each table, UniqueKeyCount is the number of distinct keywords + 1 (0xFF). This does NOT treat same words in > 1 doc as new unique key. For a catalog, UniqueKeyCount is the sum of UniqueKeyCount of each of the tables under the catalog. Identical words from different tables are treated as unique keys. In this case the unique key count is 8. |
||
sp_fulltext_pendingchanges when updating key column |
Update the full-text key column on one row of a 2-row table, and run sp_fulltext_pendingchanges. |
Both rows appear. |
Only one row appears. |
||
Inline functions |
Inline functions with a full-text operator |
Return an error message. |
Return the relevant rows. |
||
sp_fulltext_database |
Enable or disable full-text search by using sp_fulltext_database. |
No results are returned for full-text queries. If full-text is disabled for the database, full-text operations are not allowed. |
Returns results to full-text queries, and full-text operations allowed, even if full-text is disabled for the database. |
||
Locale-specific stop words |
Queries in locale-specific variants of a parent language, such as Belgian French and Canadian French. |
Queries in locale-specific variants are processed by the components (word breakers, stemmers, and stop words) of their parent language. For example, the French (France) components are used to parse French (Belgium). |
You must add stop words explicitly for each locale identifier (LCID). For example, you would need to specify an LCID for Belgium, Canada, and France. |
||
Thesaurus stemming process |
Using thesaurus and Inflectional forms (stemming). |
A thesaurus word is automatically stemmed after its expansion. |
If you want the stemmed form in the expansion, you need to explicitly add the stemmed form. |
||
Full-text catalog path and filegroup |
Working with full-text catalogs. |
Each full-text catalog has a physical path and belongs to a filegroup. It is treated as a database file. |
A full-text catalog is a virtual object and does not belong to any filegroup. A full-text catalog is a logical concept that refers to a group of full-text indexes.
|
||
sys.fulltext_catalogs |
Using the |
These columns return a specific value. |
These columns return NULL because the full-text catalog is no longer located in the file system. |
||
sys.sysfulltextcatalogs |
Using the |
Returns the file system path of the full-text catalog. |
Returns NULL because the full-text catalog is no longer located in the file system. |
||
sp_help_fulltext_catalogs sp_help_fulltext_catalogs_cursor |
Using the |
Returns the file system path of the full-text catalog. |
Returns NULL because the full-text catalog is no longer located in the file system. |
||
sp_help_fulltext_catalog_components |
Using |
Returns a list of all components (filters, word-breakers, and protocol handlers), used for all full-text catalogs in the current database. |
Returns empty rows. |
||
DATABASEPROPERTY and DATABASEPROPERTYEX |
Using the IsFullTextEnabled property. |
The IsFullTextEnabled setting indicates whether full-text search is enabled in a given database. |
The value of this column has no effect. User databases are always enabled for full-text search. |
See Also
Concepts
Behavior Changes to Full-Text Search in SQL Server 2008Other Resources
Full-Text SearchObtaining Full-Text Property Values Using Transact-SQL Functions