Поделиться через


Дефисы "-" игнорируются в поиске с помощью запросов SQL Full-Text и MSIDXS

Эта статья помогает обойти проблему, возникающую при выполнении полнотекстового поиска по данным символов SQL Server или при использовании распределенного запроса SQL с поставщиком OLE DB (MSIDXS) и расширением префикса для составного слова, содержащего дефис (например, XYZ-A*).

Применяется к: SQL Server
Исходный номер базы знаний: 200043

Симптомы

При выполнении полнотекстового поиска в символьных данных SQL Server или при использовании распределенного запроса SQL с поставщиком OLE DB (MSIDXS) microsoft Index Server (MSIDXS) и расширением префикса для составного слова, содержащего дефис (например, XYZ-A*), результаты, полученные, могут не быть должным образом.

Причина

Полнотекстовый поиск считает слово строкой символов без пробелов или препинания. Вхождение не буквенно-цифрового символа может разорвать слово во время поиска. Так как полнотекстовый поиск SQL Server является подсистемой на основе слов, препинание обычно не считается и игнорируется при поиске индекса. Таким образом, предложение, например, CONTAINS соответствует строке со значением, ошибка поиска моего компьютера будет дорогой.CONTAINS(testing, "computer-failure")

Обходное решение

Чтобы обойти эту проблему, попробуйте один из следующих методов:

  • При использовании средств полнотекстового индекса SQL Server используются только буквенно-цифровые символы.

  • Если не буквенно-цифровые символы должны использоваться в критерии поиска (в первую очередь символ дефиса - ), используйте предложение Transact-SQL LIKE вместо FULLTEXT предикатов или CONTAINS предикатов.

Дополнительная информация

Microsoft SQL Server версии 7.0 предоставляет возможность выполнять полнотекстовый запрос на символьные данные, хранящиеся в таблицах SQL Server. Вы также можете использовать распределенный запрос SQL с поставщиком MSIDXS для поиска данных файловой системы. Использование тире (-) в поиске близкого взаимодействия не поддерживается и может дать непредвиденные результаты.

Ссылки

  • Дополнительные сведения о полнотекстовом поиске SQL Server см. в электронной документации по SQL Server.

  • Дополнительные сведения об использовании предложения CONTAINS с поставщиком MICROSOFT Index Server (MSIDXS) см. в документации по серверу индексов в документации по пакету параметров Windows NT 4.0.