Вопрос

Я хочу использовать полный текстовый поиск функции Microsoft SQL Server.

Если у меня есть настольный клиент, который относится к другим столам, как город, страна, отдел и т. Д., Лучше создать отдельную таблицу, которая будет проводить декорализованные данные, которые будут иметь полный текст, или лучше создать фиктивное значение в каждой внешней таблице (например, с ключом -1), а затем замените нули от клиентской таблицы с теми соответствующими значениями для фиктивных значений, затем создайте проиндексированный вид (эти фиктивные записи являются из-за проиндексированного представления и использования внутреннего Присоединяйтесь вместо «влево присоединиться»), а затем создайте полный текстовый индекс на этом представлении индекса?

С последним я не пришлось бы беспокоиться о заполнении таблицы «декрановой» каждый раз, когда рекордные изменения в клиенте или в любом из зарубежных столов - город, страна, кафедра и т. Д.

Или, может быть, никто из вышеперечисленного, я мог бы использовать некоторые новые идеи :)

Это было полезно?

Решение

Ни один из вышеперечисленных.

Сохраняйте данные нормы и создайте отдельные индексы FT на каждой нормированной таблице. При запросе данных запрашивайте соответствующую таблицу. Если вы хотите запрос на промежуток в нескольких таблицах (например, если либо город, страна или отдел содержат «Йорк»), то используйте нормальный запрос UNION Операторы для совокупных поисков по нескольким таблицам. Это как FT работает, поэтому поддерживать ваш дизайн, согласно которым работает функция. Не пытайтесь обманывать, вы только будете сжечь себя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top