1) У меня есть текстовые поля FirstName, LastName и City. Они полнотекстовые индексированные.
2) У меня также есть поля FK int AuthorId и EditorId, а не полнотекстовый индекс.
Поиск по FirstName = 'abc' И AuthorId = 1 сначала выполнит поиск по полному текстовому индексу весь для 'abc', а затем сузит набор результатов для AuthorId = 1.
Это плохо, потому что это огромная трата ресурсов, так как полнотекстовый поиск будет выполняться по многим записям, которые неприменимы.
К сожалению, насколько мне известно, это не может быть изменено (сначала сузьте по AuthorId, а затем выполните полнотекстовый поиск в соответствующем подмножестве), поскольку процесс FTS отделен от SQL Server.
Теперь мое предлагаемое решение, к которому я обращаюсь за обратной связью: имеет ли смысл создавать еще один вычисляемый столбец, который будет включен в полнотекстовый поиск, который будет идентифицировать автора как текст (например, AUTHORONE). Таким образом, я мог бы избавиться от ограничения AuthorId и вместо этого сделать его частью моего полнотекстового поиска (для поиска «abc» были бы «abc» и «AUTHORONE» - все выполнялись как часть полнотекстового поиска).
Это хорошая идея или нет? Почему?