Весь список вопросов

Вернуться к списку

Настройка поддержки русского языка в полнотекстовом поиске под MS SQL Server 2005

В состав Microsoft SQL Server 2005 входят лицензионные средства разбиения по словам для следующих языков:

    • Датский
    • Польский
    • Бразильский вариант португальского языка
    • Иберийский вариант португальского языка
    • Русский
    • Турецкий

Данные средства разбиения по словам имеются, но по умолчанию не устанавливаются и подлежат регистрации вручную.

Осторожно! Неправильное изменение реестра может вызвать серьезные проблемы. Перед внесением изменений в реестр рекомендуется создать резервную копию всех важных данных.

Также необходимо иметь следующие данные:

    • Идентификаторы экземпляров для каждого экземпляра SQL Server, на котором требуется зарегистрировать средства разбиения по словам.
    • Путь к папке FTDATA для каждого экземпляра.
    • Извлечение идентификаторов экземпляров в случае нескольких экземпляров SQL Server.

Пути реестра, перечисленные в приведенных далее инструкциях, действительны только для первого экземпляра SQL Server 2005, имеющего идентификатор экземпляра MSSQL.1. В случае с несколькими экземплярами SQL Server необходимо изменить пути реестра, подставляя идентификатор каждого экземпляра вместо MSSQL.1. Чтобы узнать идентификатор экземпляра, выполните следующие действия.

  • Нажмите кнопку Пуск, выберите пункт Выполнить.
  • В диалоговом окне «Запуск программы» в поле Открыть введите «Regedit».
  • Нажмите кнопку ОК. Откроется редактор реестра.
  • В редакторе реестра выберите следующий раздел реестра для первого экземпляра SQL Server: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL
  • В правой области будут отображены имена экземпляров с указанием соответствующих идентификаторов экземпляра.

    Получение пути к папке FTDATA для экземпляра

    Получив идентификатор экземпляра, необходимо извлечь соответствующий путь к папке «FTData» для него. Затем с помощью этого пути можно добавлять значения конфигурации, указывающие для данного языка файлы лексики, неучитываемых слов и тезауруса. Для определения пути к папке «FTData» для экземпляра выполните следующие действия.

    • Нажмите кнопку Пуск, выберите пункт Выполнить.
    • В диалоговом окне Запуск программы в поле Открыть введите «Regedit».
    • Нажмите кнопку ОК.
    • В редакторе реестра выберите следующий раздел реестра для экземпляра SQL Server: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instance ID>\MSSQLServer
      , где <Instance ID> — это MSSQL.1 для первого экземпляра SQL Server. Следовательно, раздел реестра будет иметь следующее значение: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSQLServer

    В правой области будет отображено значение FullTextDefaultPath, содержащее путь к папке «FTData» для данного экземпляра. Например, для первого экземпляра путь может быть «C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData».

    Установка фильтров 

    1. установить и подключить фильтр для RTF (можно воспользоваться модулем regrtffilter.exe)
    2. скопировать ruslr.dll(этот файл по умолчанию находиться в C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn) в C:\WINNT\system32
    3. зарегистрировать ruslr.dll (Пуск->Выполнить->regsvr32 ruslr.dll)

    Установка средств разбиения по словам

    Процедура установки средств разбиения по словам сторонних разработчиков, лицензированных корпорацией Майкрософт, состоит из трех этапов.

    Этап 1. Добавление COM-идентификаторов ClassID для интерфейсов средств разбиения по словам и парадигматических модулей для регистрируемого языка

    Чтобы добавить COM-идентификаторы ClassID для этих компонентов, выполните следующие действия.

    • Откройте редактор реестра. Для этого:
      1. нажмите кнопку Пуск и выберите пункт Выполнить;
      2. в диалоговом окне Запуск программы в поле Открыть введите «Regedit».
  • В редакторе реестра выберите следующий раздел реестра для первого экземпляра SQL Server: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSearch\CLSID
  • В меню щелкните Правка, выберите пункт Создать и команду Раздел.
  • Введите {20036404-F1AF-11D2-A57F-006052076F32} .
  • Нажмите клавишу ВВОД.
  • В правой области щелкните правой кнопкой мыши значение реестра По умолчанию и выберите команду Изменить.
  • В диалоговом окне Изменить строку в поле Значение введите ruslr.dll и нажмите кнопку ОК.
  • Повторите шаги с 3 по 7, заменив значение в шаге 4 на {20036414-F1AF-11D2-A57F-006052076F32}.
  • Ещё раз повторите шаги с 3 по 7, заменив значение в шаге 4 на {e2403e98-663b-4df6-b234-687789db8560} и заменив значение в шаге 7 на rtffilt.dll.
  • В редакторе реестра выберите следующий раздел реестра для первого экземпляра SQL Server: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSearch\Filters\.rtf
    Для этого раздела задать значение параметра (по умолчанию) равным {e2403e98-663b-4df6-b234-687789db8560}.
  • Этап 2. Добавьте в узел «<корневой_путь_экземпляра>\MSSearch\Language» раздел для языка.

    Для добавления в этот узел раздела для русского языка выполните следующие действия.

    • Выберите следующий раздел реестра для первого экземпляра SQL Server: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSearch\Language
    • Повторите шаги с 3 по 5 предыдущего этапа, заменив название раздела в шаге 4 словом rus.

    Этап 3. Добавление конфигурационных значений, определяющих местонахождение файлов лексики, неучитываемых слов и тезауруса для данного языка

    Чтобы добавить конфигурационные значения для этих компонентов в случае датского языка, выполните следующие действия.

    • Выберите тот же раздел реестра, который был выбран ранее на этапе 2. Для первого экземпляра SQL Server им будет следующий раздел: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSearch\Language\rus
    • В меню щелкните Правка, выберите команду Создать и параметр Строковое значение (файл типа REG_SZ ).
    • Введите NoiseFile.
    • Нажмите клавишу ВВОД.
    • Щелкните правой кнопкой мыши вновь созданное значение реестра «NoiseFile» и выберите команду Изменить.
    • В диалоговом окне Изменение строки в поле Значение введите <путь_к_папке_FTData_экземпляра>\noiseRUS.txt, где <путь_к_папке_FTData_экземпляра> — это путь, полученный в предыдущем разделе («Извлечение пути к папке FTData для экземпляра»).
    • Нажмите кнопку ОК
    • Аналогично в этом же разделе (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MicrosoftSQLServer\MSSQL.1\MSSearch\Language\rus) создаём параметры:
      • TsaurusFile (файл типа REG_SZ ) со значением: <путь_к_папке_FTData_экземпляра>\tsrus.xml
      • WBreakerClass (файл типа REG_SZ ) со значением: {20036404-F1AF-11D2-A57F-006052076F32}
      • StemmerClass (файл типа REG_SZ ) со значением: {20036414-F1AF-11D2-A57F-006052076F32}
      • Locale (файл типа REG_DWORD) со значением: 00000419

    В Microsoft SQL Server Management Studio соединиться с сервером и выполнить в разделе New Query следующие операции:

      • exec sp_fulltext_service 'load_os_resources',1
      • exec sp_fulltext_service 'verify_signature',0
      • exec sp_fulltext_service 'update_languages'
      • reconfigure with override

    После чего перезапустить Службы(Services) SQL Server и SQL Server FullText Search. (Правой кнопкой мыши щёлкнуть по значку Мой компьютер (My computer), в появившемся списке выбрать Управление… (Manage…). После этого мы попадаем в приложение Управление компьютером (Computer Management), в нём в левом окошке перейти Службы и приложения->Службы (Services and Applications) и после этого в правом окошке найти службы SQL Server и SQL Server FullText поочерёдно щёлкнуть на них правой кнопкой мыши и произвести Стоп, затем Пуск (Stop-> Start))

    Неучитываемые слова

    Чтобы предотвратить чрезмерное увеличение полнотекстового индекса, в Microsoft SQL Server реализован механизм, отбрасывающий часто встречающиеся слова, которые не повышают эффективность поиска. Такие слова называются неучитываемыми словами или стоп-словами. Неучитываемые слова хранятся в отдельных файлах для каждого языка (для русского в файле noiseRUS.txt, где он расположен было описано выше). Например, файл неучитываемых слов, соответствующий английскому языку, содержит такие слова, как «a», «and», «is» и «the». Они не включаются в полнотекстовый индекс, потому что эмпирически установлено, что при поиске они бесполезны. Тем не менее при составлении полнотекстового индекса учитываются позиции неучитываемых слов. Т.о. поиск по единственному неучитываемому слову не возможен.

     

    Источники:

    http://technet.microsoft.com/ru-ru/library/ms345188.aspx

    http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=243362&pg=1

    http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=297864

    http://msdn2.microsoft.com/ru-ru/library/ms142551.aspx

     


Возврат к списку



Ольга Савко

Начальник группы телемаркетинга

Получите качественную бесплатную консультацию

Акция

Переход на отечественную АИС МФЦ

Скидка на право использования АИС МФЦ «ДЕЛО» при миграции с других решений по автоматизации МФЦ

Акция

«Амнистия» по техподдержке

Акция для клиентов, у которых есть просроченная техподдержка до 01.01.2015

Календарь мероприятий

21марта

ЭОС на IX конференции им. А.И. ИТиММ-2019

Узнать больше

13марта

ЭОС на Конференции TAdviser «СЭД и ECM Day 2019»

Узнать больше

26февраля

На Московском Цифровом Форуме ЭОС показал эффективные ИТ-инструменты и кейсы по цифровизации и кейсы по цифровизации

Узнать больше

Наши клиенты

7 000 компаний

Наши партнеры

250

во всех городах России
и странах СНГ

^