Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Полнотекстовый поиск в Sql server 2005 (x86) на Windows Server 2008 (x64)  [new]
Linker19
Guest
Здравствуйте.

Уже больше недели бьюсь никак не могу настроить полнотекстовый поиск для русского языка для SQL Server 2005.

(Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) Nov 24 2008 13:01:59 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 6.0 (Build 6001: Service Pack 1))

SQL Server 32-х битный, установлен на Windows Server 2008 64-разрядном - потому как другого нет.

Установку выполнял по инструкции в базе знаний Microsoft - 908441 (http://support.microsoft.com/kb/908441) однако толку нет - при выполнении запроса:
select * from sys.fulltext_languages

русского языка в списке нет.

Как можно настроить полнотекстовый поиск при такой конфигурации?
7 июл 09, 08:03    [7383987]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск в Sql server 2005 (x86) на Windows Server 2008 (x64)  [new]
pr0ger
Member

Откуда: Москва
Сообщений: 1933
рискну предположить что редактирование реестра должно производится из 32-х битного редактора реестра, т.е. c:\Windows\SysWOW64\regedit.exe
7 июл 09, 09:26    [7384165]     Ответить | Цитировать Сообщить модератору
 Re: Полнотекстовый поиск в Sql server 2005 (x86) на Windows Server 2008 (x64)  [new]
guest1234455
Guest
set nocount on

declare @INSTANCE sysname, @MSSQLSERVER sysname, 
	@FullTextDefaultPath nvarchar(4000), @KEY varchar(256), @VAL varchar(256),
	@PATH nvarchar(4000), @POS int

select @INSTANCE = @@SERVERNAME

select @POS = PATINDEX ( '%\%' , @INSTANCE )

if @POS <> 0 begin
	set @MSSQLSERVER = SUBSTRING(@INSTANCE, @POS+1, LEN(@INSTANCE) - @POS)
end else begin
	set @MSSQLSERVER = 'MSSQLSERVER'
end

--print @MSSQLSERVER

EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key = 'SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL',
@value_name = @MSSQLSERVER,
@value = @MSSQLSERVER OUTPUT

--print @MSSQLSERVER

set @KEY = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @MSSQLSERVER + '\MSSQLServer'

--print @KEY 

EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key = @KEY,
@value_name = 'FullTextDefaultPath',
@value = @FullTextDefaultPath OUTPUT

--print @FullTextDefaultPath

-- ===== check ===== --
set @KEY = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @MSSQLSERVER + '\MSSearch\Language\rus'

EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key = @KEY,
@value_name = 'NoiseFile',
@value = @VAL OUTPUT

print @VAL

-------------------------------------------------------------------------------------------------------------------------------

set @KEY = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @MSSQLSERVER + '\MSSearch\CLSID\{20036404-F1AF-11D2-A57F-006052076F32}'

EXEC master..xp_regwrite
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = @KEY,
@value_name = null,
@type = 'REG_SZ',
@value = 'ruslr.dll'

set @KEY = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @MSSQLSERVER + '\MSSearch\CLSID\{20036414-F1AF-11D2-A57F-006052076F32}'

EXEC master..xp_regwrite
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = @KEY,
@value_name = null,
@type = 'REG_SZ',
@value = 'ruslr.dll'

set @KEY = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @MSSQLSERVER + '\MSSearch\Language\rus'
set @PATH = @FullTextDefaultPath + '\' + 'noiseRUS.txt'

EXEC master..xp_regwrite
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = @KEY,
@value_name = 'NoiseFile',
@type = 'REG_SZ',
@value = @PATH

set @KEY = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @MSSQLSERVER + '\MSSearch\Language\rus'
set @PATH = @FullTextDefaultPath + '\' + 'tsRUS.xml'

EXEC master..xp_regwrite
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = @KEY,
@value_name = 'TsaurusFile',
@type = 'REG_SZ',
@value = @PATH

set @KEY = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @MSSQLSERVER + '\MSSearch\Language\rus'

EXEC master..xp_regwrite
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = @KEY,
@value_name = 'WBreakerClass',
@type = 'REG_SZ',
@value = '{20036404-F1AF-11D2-A57F-006052076F32}'

set @KEY = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @MSSQLSERVER + '\MSSearch\Language\rus'

EXEC master..xp_regwrite
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = @KEY,
@value_name = 'StemmerClass',
@type = 'REG_SZ',
@value = '{20036414-F1AF-11D2-A57F-006052076F32}'

set @KEY = 'SOFTWARE\Microsoft\Microsoft SQL Server\' + @MSSQLSERVER + '\MSSearch\Language\rus'

EXEC master..xp_regwrite
@rootkey = 'HKEY_LOCAL_MACHINE',
@key = @KEY,
@value_name = 'Locale',
@type = 'REG_DWORD',
@value = 1049
18 авг 09, 13:46    [7551264]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить