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

Откуда: Москва
Сообщений: 63
Привет всем.
Есть интересная мысля, а вот как можно заставить скуль производить full text search на нескольких языках по полю в одной колонке?
Судя по документации, таких возможностей нет, но явно эту проблему кто-то уже решил.
Поделитесь
))
17 авг 15, 15:53    [18029329]     Ответить | Цитировать Сообщить модератору
 Re: full text search на нескольких языках  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
DKasimov,

Для char/varchar/nchar/nvarchar. Прийдется делать разные таблицы, для каждого языка. Чтобы в каждом случае задать language, правила которого будут использоваться при разбиении текста (word breaker) на слова (при индексировании).

Для пары varbinary + file_type. Язык при создании индекса задается и он будет использован по умолчанию. Но всякие PDF/Office/XML содержат в себе также инфу о языке и iFilter's для различных типов предоставляют эту инфу и тогда используется соответствующий word breaker языка при индексировании вот этого конкретного значения в колонке. Если у вас все именно так, то можно обойтись одной таблицей вроде

create t(id_t int primary key clustered, ..., file varbinary(max), file_type nvarchar(10), lcid int);

А в запросах помимо FTS предиката добавлять and lcid = @lcid (в FTS предикате указать этот же lcid, так как именно этот word breaker и tesaurus и т. п.. будет использован для разбиения/преобразования фразы поиска).
17 авг 15, 17:39    [18030039]     Ответить | Цитировать Сообщить модератору
 Re: full text search на нескольких языках  [new]
churupaha
Member

Откуда: Краснодар
Сообщений: 1015
ну и не забыть про union если вам надо найти по нескольким фразам на разных языках.
17 авг 15, 17:43    [18030056]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить