Возможно, вопрос о нобе, но я все равно пойду за него.Полнотекстовый поиск по зарегистрированным, иерархическим записям в SQL Server 2008
Для примера у меня есть таблица Person, таблица тегов и таблица ContactMethod. У человека будет несколько записей тегов и несколько записей ContactMethod, связанных с ними.
Я хотел бы получить прощальный поиск, который будет искать среди нескольких полей из каждой таблицы. Поэтому я могу найти человека по электронной почте (через ContactMethod), их имя (через Person) или назначенный им тег.
Как полный нуб в FTS, два подхода приходит на ум:
- Построить некоторые сложный запрос, который обращается к каждому полю в отдельности
- Построить какое-то таблица поиска, которые сцепляют поля я хочу индексировать и просто сделайте полнотекстовый запрос на эту производную таблицу.
(. Вы можете изменить для ясности, я не в этом для точек репы)
Это не столько запрос на разъяснение от вас самих, сколько из общего сообщества Stack Overflow, но действительно ли это работа для полнотекстового поиска? Мое понимание всегда заключалось в том, что FTS предназначен для поиска больших блоков текста в базе данных - это неверно? Учитывая, что описания, поля контакта и тега, как мне кажется, мало меняются, может ли это не обрабатываться связью запросов LIKE? –
@Ken: Это не только вопрос размера, но и FTS может делать лингвистические вещи LIKE не может, как тезаурус, прерыватель слов, стволовые клетки и т. Д. –
MS написала хорошую статью http://technet.microsoft.com/en-us /library/ms345119(SQL.90).aspx «Запрос LIKE (например,«% cencini% ») против миллионов строк текстовых данных может занять несколько минут, тогда как полнотекстовый запрос (для« cencini ») может принимать только секунды или меньше по тем же данным, в зависимости от количества возвращаемых строк. " – u07ch