Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Каков правильный подход к написанию поисковика на SQL SERVER 2016  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3994
Господа,
есть довольно распространенная задача -- сделать поисковик относительно таблиц в БД.

Есть некая корневая таблица и на ней навешано всякое (20-30) прямых или опосредованных соединений. Схема снежинка и т.п..

SELECT 
A.X,
B.Y, 
C.Z,
D.U
FROM А
INNER JOIN B ON A.B_Id = B.ID
INNER JOIN C ON A.C_Id = C.ID
INNER JOIN D ON C.D_Id = D.ID
WHERE A.X = 6 AND B.Y LIKE '%GGG%' AND D.U IN (5,7,9) AND A.DELETED <> 1
ORDER BY C.W
OFFSET 100 ROWS FETCH NEXT 50 ROWS ONLY


Необходимо фильтровать на разным полям, которые юзер динамически задает в интерфейсе, плюс фильтровать по известным заранее настройкам, сортировать по какому-то полю, и наконец взять страницу данных начиная с х столько-то строк. И должно это работать на многих пользователей.

Как сейчас в году 2019 подходить к такой задаче?
3 июл 19, 16:08    [21920036]     Ответить | Цитировать Сообщить модератору
 Re: Каков правильный подход к написанию поисковика на SQL SERVER 2016  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6936
a_voronin,

не думаю, что появилось что-то новое. Генератор запроса (слой приложений) плюс справочники сигнатур для текстовых полей. Или же если нет задачи использования нескольких языков, то для более быстрого LIKE применить двоичные параметры сортировки.
3 июл 19, 16:17    [21920044]     Ответить | Цитировать Сообщить модератору
 Re: Каков правильный подход к написанию поисковика на SQL SERVER 2016  [new]
aleks222
Member

Откуда:
Сообщений: 754
Владислав Колосов
для более быстрого LIKE применить двоичные параметры сортировки.

Это даже не смешно.

ЗЫ. ТС не соизволил огласить объемы.
3 июл 19, 16:19    [21920047]     Ответить | Цитировать Сообщить модератору
 Re: Каков правильный подход к написанию поисковика на SQL SERVER 2016  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3994
aleks222
Владислав Колосов
для более быстрого LIKE применить двоичные параметры сортировки.

Это даже не смешно.

ЗЫ. ТС не соизволил огласить объемы.



Понятно, что FulltextSearch лучше, но он должен сочетаться с другими видами фильтров.

Объемы -- десятки лямов в корневой таблицы. От 5 до десятков тыс в сателлитах.
3 июл 19, 16:27    [21920058]     Ответить | Цитировать Сообщить модератору
 Re: Каков правильный подход к написанию поисковика на SQL SERVER 2016  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3994
Владислав Колосов
a_voronin,

не думаю, что появилось что-то новое. Генератор запроса (слой приложений) плюс справочники сигнатур для текстовых полей. Или же если нет задачи использования нескольких языков, то для более быстрого LIKE применить двоичные параметры сортировки.


Появился, например, колумнстор
3 июл 19, 16:50    [21920087]     Ответить | Цитировать Сообщить модератору
 Re: Каков правильный подход к написанию поисковика на SQL SERVER 2016  [new]
aleks222
Member

Откуда:
Сообщений: 754
a_voronin
aleks222
пропущено...

Это даже не смешно.

ЗЫ. ТС не соизволил огласить объемы.



Понятно, что FulltextSearch лучше, но он должен сочетаться с другими видами фильтров.

Объемы -- десятки лямов в корневой таблицы. От 5 до десятков тыс в сателлитах.


Главное - сделать главный, обязательный фильтр с селективностью тыщ 10-20 строк.

ЗЫ. Смешон не like.
4 июл 19, 12:39    [21920675]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить