2009-11-05 2 views
3

Как и многие веб-приложения (бизнес), клиент хочет получить форму, которая будет искать в каждом поле данных. Форма может содержать 15-20 различных полей, в которых пользователь может выбрать/ввести/ввести для использования в sql (хранимая процедура).Как лучше всего разработать sql для поддержки функции поиска в веб-приложении?

Это довольно типичные запросы пользователя, с которыми приходится сталкиваться большинству приложений.

вопрос действительно под рукой, как предоставить пользователю с этим типом интерфейса/опции И установить быстрый доступ SQL. Вышеуказанные поля могут охватывать 15 разных таблиц, а соответствующие операторы sql (обычно аббревиатурные для хранимой процедуры) будут иметь столько же объединений. Данные всегда должны возвращаться к виду типа сетки, а также к некоторому формату отчета (часто превосходят).

Я/мы находим, что эти операторы SQL медленно и трудно оптимизировать, поскольку пользователь может ввести 1 или 15 различных критериев поиска.

Как это сделать? Ищете предложения/идеи относительно того, как существующие крупные приложения справляются с этими требованиями.
Неужели это действительно попытка оптимизировать sql в хранимой процедуре?

ТНХ

+0

Кроме того, приложение должно включать подкачки и сортировки по любому из полей. – David

+0

звучит так, как будто вам нужно проверить полнотекстовый поиск в вашей конкретной системе баз данных. –

ответ

4

Нет, вы должны использовать реальные технологии поиска двигателя, чтобы сделать полнотекстового поиска имеют хорошую производительность. Никакой предикат SQL (например, LIKE '%pattern%') не будет масштабироваться.

Вы не определить, какой бренд RDBMS вы используете, но каждый крупный бренд RDBMS имеет свой собственный полнотекстовый поиск возможностей:

Есть также сторонние решения для индексации текста, такие как:

+0

+1 да, определенно, это требование полнотекстового поиска! –

Смежные вопросы