Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Shurgenz Member Откуда: Питер Сообщений: 1938 |
Здравствуте, погуглил и по инету и по форуму... Есть секционированное представление - в нем форумы. Структура одинакова, message в поле nvarchar(max) Форумов что-то около 30. check constraint на поле, которое в каждой форумной таблице и содержит название этой таблицы. Это констрэйнт использую для секционирования. Все работает замечательно. Но вот встала задача поиска вхождения фразы в сообщение любого из форумов. Хотел бы поиграть с FULL-TEXT serch. Но не получается создать уникальный индекс на вьюхе, поскольку она секционирована. Кто-нибудь решал такую задачу? Я нашим разработчикам посоветовал в качестве одного из параметров поиска передавать еще и название форума... Но это вряд ли найдет поддержку, по крайней мере сейчас. Потому бонусы секционирования в данном случае не работают. что делать? Создать полнотекстовый индекс на каждом из форумов? Поможет ли это? |
25 июл 13, 15:11 [14616718] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9632 |
FTI можно создать для таблицы или индексированного представления. Так что выбор у вас не богат: либо менять архитектуру БД, либо FTI на каждую таблицу + инлайновая функция с кучей union all внутри. |
25 июл 13, 15:24 [14616816] Ответить | Цитировать Сообщить модератору |
pkarklin Member Откуда: Москва (Муром) Сообщений: 74925 |
Shurgenz, Что, настолько много сообщений, что понадобилось по таблице на форум?! |
25 июл 13, 15:26 [14616840] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
Можно ещё для каждой таблицы своё индексирование сделать |
25 июл 13, 15:28 [14616856] Ответить | Цитировать Сообщить модератору |
Shurgenz Member Откуда: Питер Сообщений: 1938 |
по поводу инлайновой функции малость не понял... зачем? |
||
25 июл 13, 15:32 [14616895] Ответить | Цитировать Сообщить модератору |
Shurgenz Member Откуда: Питер Сообщений: 1938 |
это исторически... в каких-то много, в каких-то мало.... менять сейчас что-то не дадут |
||
25 июл 13, 15:33 [14616898] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
|
||
25 июл 13, 15:38 [14616932] Ответить | Цитировать Сообщить модератору |
Shurgenz Member Откуда: Питер Сообщений: 1938 |
Прекрасный вариант... попробую реализовать, спасибо! |
||||
25 июл 13, 16:12 [14617218] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9632 |
create function dbo.fnSearchOnAllForums ( @Critereia varchar(100) ) returns table as return select 'Forum1', id from dbo.Forum1 where contains(Message, @Criteria) union all select 'Forum2', id from dbo.Forum2 where contains(Message, @Criteria) union all ... union all select 'ForumN', id from dbo.ForumN where contains(Message, @Criteria); |
||
25 июл 13, 16:35 [14617407] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |