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

Откуда: Київ
Сообщений: 10428
построил вью на таблице, в которйо есть поле, которое участвует в полнотекстовом индексе.
По таблице ищется, то же во вью - нет

Msg 7601, Level 16, State 4, Line 1
Cannot use a CONTAINS or FREETEXT predicate on table or indexed view 'dbo.v_text' because it is not full-text indexed.


Интересно было бы понять причины, почему в MS так сделали.
30 апр 13, 17:14    [14250594]     Ответить | Цитировать Сообщить модератору
 Re: Почему нельзя искать полнотекстово во вью?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Winnipuh
Интересно было бы понять причины, почему в MS так сделали.

Потому что сначала надо сделать full-text index для view ?
30 апр 13, 17:15    [14250597]     Ответить | Цитировать Сообщить модератору
 Re: Почему нельзя искать полнотекстово во вью?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
Winnipuh
Интересно было бы понять причины, почему в MS так сделали.

Потому что сначала надо сделать full-text index для view ?


да.. наверное, да...

но что интересно:


есть таблица и вью на ней:

create table t(id int not null primary key, string ntext)
create view as select * from t;


в таблице есть ключ и полнотекстово проиндексированное поле.
Но для того, чтобы искать во вью сервер требует создать FT index на том же поле, которое уже проиндексирован, но перед тем как его создать нужно иметь уникальное поле во вью, т.е. создать индекс по id в данном примере.
Т.е. продублировать оба индекса?
30 апр 13, 17:27    [14250647]     Ответить | Цитировать Сообщить модератору
 Re: Почему нельзя искать полнотекстово во вью?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Winnipuh
Но для того, чтобы искать во вью сервер требует создать FT index на том же поле, которое уже проиндексирован, но перед тем как его создать нужно иметь уникальное поле во вью, т.е. создать индекс по id в данном примере.
Т.е. продублировать оба индекса?

Простой view - это всего лишь текст запроса.
30 апр 13, 17:30    [14250666]     Ответить | Цитировать Сообщить модератору
 Re: Почему нельзя искать полнотекстово во вью?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
Winnipuh
Но для того, чтобы искать во вью сервер требует создать FT index на том же поле, которое уже проиндексирован, но перед тем как его создать нужно иметь уникальное поле во вью, т.е. создать индекс по id в данном примере.
Т.е. продублировать оба индекса?

Простой view - это всего лишь текст запроса.


и так тоже нельзя

select * from 
(select * from t where id>1000) t1 where contains(*, N'test')
30 апр 13, 17:36    [14250690]     Ответить | Цитировать Сообщить модератору
 Re: Почему нельзя искать полнотекстово во вью?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Вы когда нибудь начнете читать хелп ?

Full-text predicates and functions work on a single table, which is implied in the FROM predicate.
30 апр 13, 17:41    [14250714]     Ответить | Цитировать Сообщить модератору
 Re: Почему нельзя искать полнотекстово во вью?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Glory
Вы когда нибудь начнете читать хелп ?

Full-text predicates and functions work on a single table, which is implied in the FROM predicate.


да...
30 апр 13, 17:55    [14250764]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить