Вопрос по SQL Server Yukon

uniqueman
Уже с Приветом
Posts: 2013
Joined: 16 Mar 2002 10:01
Location: New York City

Post by uniqueman »

Возможно ли сделать full text search с параметром типа " *word " или " *word* ". В SQL Server 2000 вроде нет, а в Юконе как?
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Мне кажется что Вам нужно чтото другое
Насколько я понимаю, fts индексирует СЛОВА а не СТРОКИ
То ест Вам нужен быстрый аналог LIKE, а не FTS
Соответственно вопо о case-sensitivity тоже отпадает

Я у себя проблему решил точно такую же
(тут у нас еще сложнее, клиент хочет и ошибки в правопсаии и синонимы)
Но извините скрипты дать не могу, собственость клиента
Так что все через него :)
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
uniqueman
Уже с Приветом
Posts: 2013
Joined: 16 Mar 2002 10:01
Location: New York City

Post by uniqueman »

Мне нужен очень быстрый поиск текстовой информации, которая хранится в базе данных. FTS работает в принципе неплохо, но вот если надо найти допустим слова которые заканчиваются на able, или где able стоит в любом месте слова... тут пока беда.
User avatar
Win32nipuh
Уже с Приветом
Posts: 2489
Joined: 04 Feb 2002 10:01
Location: Слава Україні!

Post by Win32nipuh »

uniqueman wrote:Мне нужен очень быстрый поиск текстовой информации, которая хранится в базе данных. FTS работает в принципе неплохо, но вот если надо найти допустим слова которые заканчиваются на able, или где able стоит в любом месте слова... тут пока беда.


Получается, что если Вам не нужны "фичи" FTS (словоформы и т.д.), в таком случае можно не грузить сервер FT индексированием. Как написал Dmitry67 - пробуйте обойтись лайками.
Но нужно заметить, что если Вы в лайке ищете внутреннее вхождение подстроки - это полное сканирование таблицы, обычный индекс для этого поля не поможет.
uniqueman
Уже с Приветом
Posts: 2013
Joined: 16 Mar 2002 10:01
Location: New York City

Post by uniqueman »

Нет, поиск фраз и слов нужен обязательно. И LIKE Для этого не подойдет по причине скорости. Сравнил скорости выборки через CONTAINS и через LIKE. Разница примерно в 8 раз. Это очень критично.

Я просто объяснил шефу что выборки типа * WORD, * WORD * не будут работать в FTS> Он вроде успокоился
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Напишите xp
Она будет парзить строку и добавлять выбранные слова (case_sensitive) в некую таблицу с полями IDдокумента,IDслова

ПРи поиске вы снова парзите строку, находите слова в словаре и делаете join c этой таблицей
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014

Return to “Вопросы и новости IT”