Критические изменения в полнотекстовом поиске
В этом разделе описываются критические изменения полнотекстового поиска. Эти изменения могут нарушать работу приложений, скриптов или механизмов, основанных на более ранних версиях SQL Server. При обновлении могут возникнуть следующие проблемы. Дополнительные сведения см. в разделе Use Upgrade Advisor to Prepare for Upgrades.
Критические изменения в поиске Full-Text в SQL Server 2014
Сведения будут доступны позже.
Критические изменения в поиске Full-Text в SQL Server 2012
Изменены параметры сортировки для столбца «name» в представлении sys.fulltext_languages
Параметры сортировки столбца имени языка в представлении каталога sys.fulltext_languages (Transact-SQL) изменены с фиксированных параметров сортировки базы данных Resource на параметры сортировки по умолчанию, выбранные для экземпляра SQL Server. Это изменение позволяет сравнивать значения в столбце name при присоединении представления sys.syslanguages (Transact-SQL) к sys.fulltext_languages. Например, можно создать запрос, выдающий список всех баз данных, у которых язык полнотекстового поиска по умолчанию отличается от языка базы данных по умолчанию.
Критические изменения полнотекстового поиска в SQL Server 2008
Следующие критические изменения применяются к поиску Full-Text в период с SQL Server 2005 по SQL Server 2008 и более поздних версий.
Функция | Сценарий | SQL Server 2005 | SQL Server 2008 и последующие версии |
---|---|---|---|
CONTAINSTABLE с определяемыми пользователем типами (определяемыми пользователем типами) | Полнотекстовый ключ является SQL Server определяемым пользователем типом, например MyType = char(1) . |
Возвращаемый ключ имеет тип, назначенный определяемому пользователем типу. В примере это будет char(1). |
Возвращаемый ключ имеет определяемый пользователем тип. В примере это будет MyType. |
параметр top_n_by_rank (инструкций Transact-SQL CONTAINSTABLE и FREETEXTTABLE) | top_n_by_rank запросы, используя в качестве параметра значение 0. | Завершается с сообщением об ошибке, указывающим на то, что значение должно быть больше нуля. | Завершается успешно, возвращая 0 строк. |
CONTAINSTABLE и ItemCount | Удаление строк из базовой таблицы перед передачей изменений компоненту MSSearch. | Функция CONTAINSTABLE возвращает фантомную запись. ItemCount не изменяется. | Функция CONTAINSTABLE не возвращает фантомных записей. |
ItemCount | Таблица содержит документы или типы столбцов, имеющие значение NULL. | Помимо индексированных документов, в значении ItemCount учитываются документы, имеющие типы NULL. | В значении ItemCount учитываются только индексированные документы. |
Catalog ItemCount | Столбец BLOB с расширением NULL. | Он учитывается в ItemCount каталога | Он не учитывается в ItemCount каталога. |
UniqueKeyCount | Запрос уникального количества ключей из каталога, например двух таблиц (table1 и table2) с тремя словами: word1, word2 и word3. | UniqueKeyCount = 9. В следующей таблице показано, как получено это значение. таблица1 = 3 EOF для полнотекстового индекса таблицы1 = 1 таблица2 = 3 EOF для полнотекстового индекса таблицы2 = 1 полнотекстовый каталог = 1 |
Для каждой таблицы UniqueKeyCount — это количество различных ключевых слов + 1 (0xFF). Это НЕ означает, что одни и те же слова в > 1 документе считаются новым уникальным ключом. Для каталога UniqueKeyCount — это сумма UniqueKeyCount каждой таблицы в каталоге. Одинаковые слова, содержащиеся в различных таблицах, считаются уникальными ключами. В данном случае число уникальных ключей равно 8. |
параметр предварительного ранжирования на уровне сервера | Оптимизация производительности запросов FREETEXTTABLE. | Если параметр имеет значение 1, запросы FREETEXTTABLE, указанные с помощью top_n_by_rank используют предварительно вычисляемые данные ранга, хранящиеся в полнотекстовых каталогах. | Не поддерживается. |
sp_fulltext_pendingchanges при обновлении ключевого столбца | Обновляется полнотекстовый ключевой столбец на одной строке в таблице, содержащей две строки, а затем выполняется хранимая процедура sp_fulltext_pendingchanges. | Отображаются обе строки. | Отображается только одна строка. |
Встраиваемые функции | Встроенные функции с полнотекстовым оператором | Возвращает сообщение об ошибке. | Возвращает соответствующие строки. |
sp_fulltext_database, хранимая процедура | Включение и отключение полнотекстового поиска при помощи хранимой процедуры using sp_fulltext_database. | Результаты для полнотекстовых запросов не возвращаются. Если полнотекстовый поиск в базе данных отключен, полнотекстовые операции запрещены. | Возвращает результаты полнотекстовых запросов. Полнотекстовые операции разрешены, даже если полнотекстовый поиск в базе данных отключен. |
Стоп-слова, зависящие от локали | Запрашивает варианты родительского языка, например бельгийский французский и канадский французский. | Варианты запросов, зависящие от расположения, обрабатываются компонентами (средствами разбиения по словам, парадигматические модули и стоп-слова) родительского языка. Например, компоненты для языка «Французский (Франция)» используются для синтаксического анализа языка «Французский (Бельгия)». | Стоп-слова для каждого идентификатора локали (LCID) должны добавляться явным образом. В частности, может потребоваться указать LCID для Бельгии, Канады и Франции. |
Добавление парадигм в тезаурус | Применение тезауруса и словоформы (добавление парадигм). | После добавления слова в тезаурус для него автоматически создается парадигма. | Если при расширении необходима парадигматическая форма, ее необходимо добавить явным образом. |
Путь и файловая группа полнотекстового каталога | Работа с полнотекстовыми каталогами. | Каждый полнотекстовый каталог имеет физический путь и входит в файловую группу. Он рассматривается как файл базы данных. | Полнотекстовый каталог является виртуальным объектом и не входит в файловую группу. Полнотекстовый каталог — это логическое понятие, обозначающее группу полнотекстовых индексов. Примечание. SQL Server 2005 Инструкции DDLTransact-SQL, указывающие полнотекстовые каталоги, работают правильно. |
sys.fulltext_catalogs | Использование в этом представлении каталога столбцов path, data_space_id и file_id. | Указанные столбцы возвращают конкретные значения. | Указанные столбцы возвращают значение NULL, поскольку теперь полнотекстовый каталог находится не в файловой системе. |
sys.sysfulltextcatalogs | Использование в этой устаревшей системной таблице столбца PATH. | Возвращает путь к полнотекстовому каталогу в файловой системе. | Возвращает значение NULL, поскольку полнотекстовый каталог теперь находится не в файловой системе. |
sp_help_fulltext_catalogs sp_help_fulltext_catalogs_cursor |
Использование в этих устаревших хранимых процедурах столбца PATH. | Возвращает путь к полнотекстовому каталогу в файловой системе. | Возвращает значение NULL, поскольку полнотекстовый каталог теперь находится не в файловой системе. |
sp_help_fulltext_catalog_components | Использование хранимой процедуры sp_help_fulltext_catalog_components. | Возвращает список всех компонентов (фильтров, разделителей слов и обработчиков протоколов), используемых для всех полнотекстовых каталогов в текущей базе данных. | Возвращает пустые строки. |
DATABASEPROPERTYEX | Использование свойства IsFullTextEnabled . | Параметр IsFullTextEnabled указывает, включен ли полнотекстовый поиск в заданной базе данных. | Значение этого столбца не учитывается. Полнотекстовый поиск всегда включен для пользовательских баз данных. |
См. также:
Изменения в функциях полнотекстового поиска
Полнотекстовый поиск