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

Откуда:
Сообщений: 173
В таблице (>5 000 000 записей) есть одна, в которой в варчарном поле стоит А.С.К.Т.
Таблица имеет полнотекстовый индекс по этому полю.
Однако простой запрос
select id,KEY_TBL.RANK as Rank from MyTable a INNER JOIN CONTAINSTABLE (MyTable,
(name,short_name), '"А.С.К.Т.*"') AS KEY_TBL ON a.ID = KEY_TBL.[KEY] 
Приводит к ошибке
Too many full-text columns or the full-text query is too complex to be executed.

Что не так? И как из этого выкрутиться. Язык в индексе NEUTRAL
28 мар 08, 10:22    [5471326]     Ответить | Цитировать Сообщить модератору
 Re: что-то я торможу  [new]
Agers
Member

Откуда:
Сообщений: 209
Раз варчароне поле, наверное проще написать upper(name) Like '%А.С.К.Т.%'
28 мар 08, 10:29    [5471387]     Ответить | Цитировать Сообщить модератору
 Re: что-то я торможу  [new]
dimong2004
Member

Откуда:
Сообщений: 173
На 5 миллионах записей?!
28 мар 08, 10:30    [5471391]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: что-то я торможу  [new]
Николай Сердюк
Guest
Привет,


<simple_term>
Specifies a match for an exact word or a phrase. Examples of valid simple terms are "blue berry", blueberry, and "Microsoft SQL Server". Phrases should be enclosed in double quotation marks (""). Words in a phrase must appear in the same order as specified in <contains_search_condition> as they appear in the database column. The search for characters in the word or phrase is not case sensitive. Noise words (such as a, and, or the) in full-text indexed columns are not stored in the full-text index. If a noise word is used in a single word search, SQL Server returns an error message indicating that the query contains only noise words. SQL Server includes a standard list of noise words in the directory \Mssql\Binn\FTERef of each instance of SQL Server.

Punctuation is ignored. Therefore, CONTAINS(testing, "computer failure") matches a row with the value, "Where is my computer? Failure to find it would be expensive." For more information on word-breaker behavior, see Word Breakers and Stemmers.

Я так понимаю пунктуация пропускается, поетому поиск ведется по словам: А С К Т*, в результате поиска Т* находится слишком много результатов, и ето приводит к ошибке "Too many full-text columns or the full-text query is too complex to be executed.".

У меня похожая ситуация, поиск по "5*" въдает ту же ошибку, до сих пор не нашел способа ограничить количество результатов.
12 ноя 09, 19:24    [7922576]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить