Лучший способ буквального поиска фразы в текстовом столбце в SQL Server - PullRequest
0 голосов
/ 09 апреля 2009

Я думал, что полнотекстовый поиск позволил бы мне выполнять точный поиск по фразам более оптимизированным способом, чем предикат LIKE, но я читаю, что он не делает это точно.

Является ли "LIKE" наиболее эффективным способом поиска тысяч строк полей TEXT в таблице по литеральной строке?

Это должно быть точное совпадение ...

Ответы [ 3 ]

1 голос
/ 09 апреля 2009

LIKE (строка%) будет работать быстрее, если у вас есть правильный индекс для столбца и вы ищете «строку» только в начале значения. Вы должны использовать LIKE (% string%), если «строка» может быть в середине вашего значения; В этом случае сканирование таблицы будет выполняться медленно и медленнее (медленнее, чем полнотекстовый поиск). Вы можете использовать функцию CONTAINS () для полнотекстового поиска для точного соответствия.

0 голосов
/ 09 апреля 2009

На какой версии SQL Server вы работаете? Я бы порекомендовал заменить TEXT на VARCHAR (MAX), если это возможно (SQL Server 2005 и выше).

Что заставляет вас говорить, что полный текст не будет работать? Как вы настроили полный текст и как выглядят ваши полнотекстовые запросы?

Марк

0 голосов
/ 09 апреля 2009

Очевидно, CONTAINS быстрее, чем LIKE запрос ...

http://www.docstoc.com/docs/2280727/Microsoft-SQL-Server-70-Full-Text-Search-What-is-full-text-search

(Профили можно найти на странице 19 этой презентации)

...