• Быстрый переход
  • Рубрики
  • Свежие записи
  • Метки
  • Архивы
  • Реклама 1
  • Реклама 2
  • Рейтинг@Mail.ru

    Установка и настройка Sphinx на Windows


    Sphinx является системой полнотекствого поиска, распространяемой под лицензией GPL второй версии. Сфинкс позволяет добавить функции быстрого полнотекстового поика в сторонние приложения и был специально спроектирован для взаимодействия с реляционными базами данных и скриптовыми языками программирования. На данный момент движок позволяет индексировать данные, хронящиеся в базах данных MySQL, PostgreSQL или в любом другом формате через XML-шлюз.

    Для начало идем на страницу загрузки:

    http://sphinxsearch.com/downloads/release/ и качаем Win32 binaries w/MySQL support ну или другую версию по надобности.

    Скачав архив, распаковываем его в любое место на жестком диске, я обычно распаковываю в корень диска D.

    После распаковки у меня получилась папка D:/sphinx-0.9.9-win32, которую я для удобства использования переименовал в просто D:/sphinx

    Теперь у нас есть рабочая версия sphinx, осталось только создать файл настроек.
    Основной интерес для нас представляет папка bin. В ней находятся все утилиты, которые мы будем использовать в дальнейшем. Также нам могут пригодиться файлы sphinx.conf.in и sphinx-min.conf.in, которые представляют собой шаблоны файлов конфигурации. Их можно использовать в качестве примеров при настройке Sphinx.
    Нам так же необходимо подготовить рабочую папку, в которой будут храниться файл конфигурации, индексы и логи. В папке sphinx создадим папку data, а в ней в свою очередь создадим пустой файл config.txt и папки index, log и binlog. Эти папки нужно создать заранее, т.к. Sphinx не сможет создать их сам (у меня, по крайней мере, не смог) и просто не запустится.
    Чтобы запустить Sphinx, его необходимо зарегистрировать как службу Windows. Запустим командную строку от имени администратора и введём следующую команду:
    D:\sphinx\bin\searchd --config D:\sphinx\data\config.txt --install --servicename Sphinx
    При необходимости, удалить ранее установленную службу можно следующей командой:
    D:\sphinx\bin\searchd --servicename Sphinx --delete

    Попытка сразу запустить зарегистрированную службу Sphinx завершится неудачей. Дело в том, что наш файл конфигурации (D:\sphinx\data\config.txt) пока ещё пуст. Добавим в него следующие строки:

    searchd
    {
    listen = 9306:mysql41
    pid_file = c:/sphinx/data/searchd.pid
    log = c:/sphinx/data/log/log.txt
    query_log = c:/sphinx/data/log/query_log.txt
    binlog_path = c:/sphinx/data/binlog/
    }
    Я намеренно убрал все необязательные настройки, оставив только самые важные.

    Настройка listen указывает, что Sphinx будет использовать порт 9306 и протокол mysql. Использование протокола mysql позволяет подключаться к Sphinx как к обычной базе данных MySQL.
    Настройка pid_file указывает расположение pid-файла, который используется для внутренних нужд.
    Настройки log и query_log указывают расположение файлов логов, в которые будут записываться все события.
    Настройка binlog_path указывает расположение файлов, которые могут использоваться для восстановления данных real-time индексов после сбоя.
    Помимо этого, для запуска службы Sphinx необходимо создать хотя бы один индекс. В одной из следующих статей я постараюсь рассказать о создании индексов подробнее, а пока просто создадим фейковый real-time индекс.

    Добавим в файл конфигурации следующие строки:

    index fake_index
    {
    type = rt
    path = c:/sphinx/data/index/fake_index
    rt_field = fake_field
    }
    Теперь зайдём в Панель управления - Администрирование - Службы, найдём в списке службу Sphinx и запустим её. При следующем запуске компьютера эта служба должна будет запускаться автоматически.

    Теперь нам осталось позаботиться об индексации через промежутки времени
    Для этого качаем программа nnCron для Windows. После установки nnCron добавляем ей задания
    Например индексация всего контента сайта (топики, комментарии)

    D:\server\sphinx\bin\indexer.exe --rotate --all

    --rotate передаст обновлённые данные демону без его перезагрузки!

    если хотим топики отдельно индексировать через 2 часа например а комменты каждые 20 минут можно задать два задания так:

    D:\server\sphinx\bin\indexer.exe --rotate topicsIndex

    D:\server\sphinx\bin\indexer.exe --rotate commentsIndex

    и в планировшике указать интервал выполнения задачи.

    Автор: admin, 18 февраля 2014
    Рубрики: OS Windows, Новости
    Метки: , , , , , , ,

    Написать комментарий

    Последние статьи