понедельник, 7 мая 2012 г.

Установка словарей PostgreSql для русского полнотекстового поиска.

PostgreSQL имеет собственный полнотекстовый поиск, но в нем нет стемминга для русского языка.
Словари для русского можно достать здесь:
http://ftp5.gwdg.de/pub/openoffice/contrib/dictionaries/ru_RU-pack.zip
Внутри будет архив ru_RU.zip, из которого необходимо извлечь файлы ru_RU.dic и ru_RU.aff.
Словари в кодировке koi8, поэтому их следует преобразовать в UTF-8:


Теперь в консоли постгреса создадим конфигурацию для полнотекстового поиска:
Далее, если нужно чтобы эта конфигурация работала по умолчанию в postgres.conf следует написать
Проверим словари:

4 комментария:

  1. Здравствуйте!
    Скажите пожалуйста, что если у нас контент может быть и на английском и на русском? Можно ли подключать словари сразу двух языков?

    ОтветитьУдалить
    Ответы
    1. ALTER TEXT SEARCH CONFIGURATION ru ALTER MAPPING FOR hword, hword_part, word WITH russian_ispell, russian_stem, english_ispell, english_stem;

      Удалить
  2. Этот комментарий был удален автором.

    ОтветитьУдалить
  3. ALTER TEXT SEARCH CONFIGURATION ru ALTER MAPPING FOR hword, hword_part, word WITH russian_ispell, russian_stem
    ALTER TEXT SEARCH CONFIGURATION ru ALTER MAPPING FOR asciiword, asciihword, hword_asciipart WITH english_ispell, english_stem;

    ОтветитьУдалить