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

Откуда:
Сообщений: 3
Неожиданно выяснилось, что FTS не ищет ряд слов.

Проверить очень просто, создадим таблицу product с полями id, title (nvarchar(max)), включим полнотекстовый поиск, заполним одним товаром - "Плед полное с рукавами"

Запросы указанные ниже вернут пустой результат
SELECT * FROM [product] where CONTAINS (title, 'FORMSOF(INFLECTIONAL, "полное")')
SELECT * FROM [product] where FREETEXT (title, 'полное')

Эти запросы же вернут данную позицию.
SELECT * FROM [product] where CONTAINS (title, 'FORMSOF(INFLECTIONAL, "плед")')
SELECT * FROM [product] where CONTAINS (title, 'FORMSOF(INFLECTIONAL, "рукав")')

Причем словоформы ms sql знает.
SELECT display_term FROM sys.dm_fts_parser(N'FORMSOF(INFLECTIONAL, "полное")', 1049, 0, 1)

полна полная полнее полно полного полной полном полному полною полную полны полные полный полным полными полных полон полное

Например если взять фразу "Хороший муж, когда найдет заначку жены, должен добавить в неё денег."
То по словам "хороший", "когда", "должен", - поиск вернет пустой результат, по остальным - верный.

Проблема проявляется на mssql 2012.

Подскажите пожалуйста, в чем может быть причина?
15 сен 16, 11:38    [19667776]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск не ищет некоторые (много!) слов  [new]
kpohodyaschiy
Member

Откуда:
Сообщений: 3
Забыл сказать что точно такое же поведение подтвердилось на 3 разных серверах MS SQL.
15 сен 16, 11:43    [19667805]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск не ищет некоторые (много!) слов  [new]
invm
Member

Откуда: Москва
Сообщений: 9842
select
 stopword
from
 sys.fulltext_system_stopwords
where
 language_id = 1049 and stopword in (N'полное', N'хороший', N'когда', N'должен');
15 сен 16, 13:04    [19668347]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск не ищет некоторые (много!) слов  [new]
kpohodyaschiy
Member

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

Спасибо за ответ.

Пример через час поиск заработал, видимо было долгое индексирование.
Список стоп-слов пуст, все равно спасибо за ответ!
15 сен 16, 14:29    [19668876]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить