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

Откуда:
Сообщений: 6
Добрый день!
Помогите пожалуйста разобраться со следующей проблемой.
Одна из колонок таблицы - адреса физических лиц, содержащие данные по нас пунктам, улицам, номерам домов, корпусам, квартирам..... Сделан полнотекстовый индекс по этому полю.
Не могу понять - почему примерно в 50% случаев запрос с оператором Contains, в котором перечислены через оператор and название нас пункта, название улицы, номер дома, номер квартиры возвращает пустое значение. Если в запросе убирать числовые данные - номер дома и номер квартиры, то все находится.
Заранее спасибо!
20 мар 14, 11:31    [15757847]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск числовых данных в строке  [new]
Wizandr
Member

Откуда: Империя Добра
Сообщений: 37010
Totkotory,

почему бы не использовать like? неужели у вас в этом справочнике миллионы записей?
20 мар 14, 12:00    [15758165]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск числовых данных в строке  [new]
Totkotory
Member

Откуда:
Сообщений: 6
Wizandr,
Записей с десяток миллионов наберется.
Поиск по Like идет до 3-4 минут. По полнотекстовому индексу очень быстро, но почему-то некачественно
20 мар 14, 15:59    [15760694]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск числовых данных в строке  [new]
invm
Member

Откуда: Москва
Сообщений: 9404
Totkotory,

Для начала попробуйте пересоздать индекс с stoplist = off
20 мар 14, 16:25    [15760907]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск числовых данных в строке  [new]
Totkotory
Member

Откуда:
Сообщений: 6
Работаю на SQL server 2008. Оператор STOPLIST не воспринимает - выдается ошибка 'incorrect syntax near "STOPLIST"'
Пробовал указывать и при создании индекса, и при апдейте.
Пример: Alter Fulltext index on T
set stoplist OFF; -- (пробовал и set stoplist=OFF;)
go

С другими параметрами при различных вариантах все проходит, такими как СHANGE_TRACKING в различных вариациях.

При попытке создать ФТИ через Management Studio выдается ошибка "permission was denaided on the object sp_help_category" и "....sysjobs_view" - у меня к сожалению нет полных прав, но скриптом создавать удается....
21 мар 14, 13:31    [15766033]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск числовых данных в строке  [new]
Totkotory
Member

Откуда:
Сообщений: 6
Нашел в свойствах БД - уровень совместимости SQL server 2005. В справке 2005 в конструкции FULLTEXT INDEX нет оператора STOPLIST. Наверное в этом дело?
Если да, то как это поменять - это переустановка SQL Server или можно отрегулировать более простыми действиями?
21 мар 14, 14:27    [15766696]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск числовых данных в строке  [new]
o-o
Guest
USE master
GO
ALTER DATABASE your_db SET COMPATIBILITY_LEVEL = 100
GO
21 мар 14, 14:36    [15766782]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск числовых данных в строке  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Вы можете отредаактировать список noise words и потом перестроить FT индексы.
21 мар 14, 14:37    [15766798]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск числовых данных в строке  [new]
invm
Member

Откуда: Москва
Сообщений: 9404
Totkotory
Если да, то как это поменять
alter database ... set compatibility_level = 100;
21 мар 14, 14:38    [15766802]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск числовых данных в строке  [new]
Totkotory
Member

Откуда:
Сообщений: 6
invm,

Спасибо большое, похоже помогло!!!
25 мар 14, 21:13    [15786166]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить