Мой сайт
Среда, 18.06.2025, 18:36
» Меню сайта
» Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
» Форма входа
Главная » 2013 » Март » 7 » Установка sphinx в windows или операция denwer :)
13:54
 

Установка sphinx в windows или операция denwer :)

Долгими мучениями удалось одолеть этого мощного демона :)
Буду показывать по своим примерам, а вы уже используете под свои нужды

1. Качаем версию
2. Cоздаём папку sphinx в C:\server\ в итоге получаем C:\server\sphinx\
3. Распаковываем из скаченного архива всё в неё
4. Pдесь же сразу (C:\server\sphinx\) создадим 2 папки index и log
Папка index будет хранить файлы, которые проиндексирует Sphinx, а папка log – логи работы Sphinx
5. Далее в денвере или в вашем MySQL ищем файлик libmysql.dll и копируем его в C:\server\sphinx\bin\
Можно еще в C:\windows и C:windows\system32
Главное, чтобы версия этого файлика была одинаковая. В принципе первого варианта достаточно
6. Создаём конфиг файл в папке C:\server\sphinx\bin\
Имя файла можно произвольное но я выбрала такое sphinx.conf
С содержанием:
## Конфигурационный файл Sphinx-а для индексации Живой улицы ####################### # # Описываем индексы # ####################### # Источник-родитель для всех остальных источников. Здесь указываются параметры доступа # к базе данных сайта source lsParentSource { type = mysql sql_host = localhost sql_user = root sql_pass = sql_db = livestreet sql_port = 3306 # Для ускорения работы прописываем путь до MySQL-го UNIX-сокета (чтобы # операции с БД происходили не через TCP/IP стек сервера) sql_sock = /var/run/mysqld/mysqld.sock mysql_connect_flags = 32 # 32- включение сжатие при обмене данными с БД # Включам нужную кодировку соединения и выключаем кеш запросов sql_query_pre = SET NAMES utf8 sql_query_pre = SET SESSION query_cache_type=OFF } # Источник топиков source topicsSource : lsParentSource { # запрос на получения данных топиков sql_query = \ SELECT t_fast.topic_id, t_fast.topic_title, UNIX_TIMESTAMP(t_fast.topic_date_add) as topic_date_add, \ tc.topic_text, t_fast.topic_publish \ FROM prefix_topic as t_fast, prefix_topic_content AS tc \ WHERE t_fast.topic_id=tc.topic_id AND t_fast.topic_id>=$start AND t_fast.topic_id<=$end # запрос для дробления получения топиков на неколько итераций sql_query_range = SELECT MIN(topic_id),MAX(topic_id) FROM prefix_topic # сколько получать объектов за итерацию sql_range_step = 1000 # Указываем булевый атрибут критерия "топик опубликован". Для возможности указания этого критерия при поиске sql_attr_bool = topic_publish # Атрибут даты добавления, типа "время" sql_attr_timestamp = topic_date_add # мульти-аттрибут "теги топика" sql_attr_multi = uint tag from query; SELECT topic_id, topic_tag_id FROM prefix_topic_tag sql_ranged_throttle = 0 } # Источник комментариев source commentsSource : lsParentSource { sql_query = \ SELECT comment_id, comment_text, UNIX_TIMESTAMP(comment_date) as comment_date, comment_delete \ FROM prefix_topic_comment \ WHERE comment_id>=$start AND comment_id<=$end sql_query_range = SELECT MIN(comment_id),MAX(comment_id) FROM prefix_topic_comment sql_range_step = 5000 sql_attr_bool = comment_delete sql_attr_timestamp = comment_date } ####################### # # Описываем индексы # ####################### index topicsIndex { # Источник, который будет хранить данный индекса source = topicsSource path = C:/server/sphinx/index/topics # Тип хранения аттрибутов docinfo = extern mlock = 0 # Используемые морфологические движки morphology = stem_enru, soundex, metaphone # Кодировака данных из источника charset2_type = utf-8 # Из данных источника HTML-код нужно вырезать html_strip = 1 } # Индекс комментариев index commentsIndex { source = commentsSource path = C:/server/sphinx/index/comments docinfo = extern mlock = 0 morphology = stem_enru, soundex, metaphone charset2_type = utf-8 } ####################### # # Настройки индексатора # ####################### indexer { # Лимит памяти, который может использавать демон-индексатор mem_limit = 32M } ####################### # # Настройка демона-поисковика # ####################### searchd { address = 127.0.0.1 # address = 192.168.0.1 # searchd TCP port number # mandatory, default is 3312 port = 3312 # Лог-файл демона log = C:/server/sphinx/log/searchd.log # Лог поисковых запросов. Если закомментировать,то логировать поисковые строки не будет query_log = C:/server/sphinx/log/query.log # Время в секундах, которое ждет демон при обмене данными с клиентом. По исчерпании происходит разрыв коннекта read_timeout = 5 # Максимальное количество одновременно-обрабатываемых запросов. 0 означает дофига, а точнее без ограничения max_children = 30 # Файл, в который сохраняется PID-процесса при запуске pid_file = C:/server/sphinx/log/searchd.pid }

Теперь установим демон в качестве службы. Настоятельно не рекомендую это делать через ваши виртуальные диски которые создал денвер! Делайте всё из корневого диска «С»

7. Запускаем Far Manager или CMD кому как удобно
переходим в папку C:\server\sphinx\bin\
и пишем: searchd.exe --install --config C:\server\sphinx\bin\sphinx.conf

жмём enter и сфинкс установлен.
Примечание! Обязательно указать полный путь к конфиг файлу или же Windows потом напрочь откажется запускать демона как службу!

8. Пуск ->Настройка->Панель управления->Администрирование->Службы
В списке находим и запускаем.

Теперь при каждом запуске Windows демон сам будет стартовать

Теперь нам осталось позаботиться об индексации через промежутки времени
Для этого качаем программа для Windows
Программа на русском языке и для бывшего СССР бесплатная регистрация

После установки nnCron добавляем ей задания
Например индексация всего контента сайта (топики, комментарии)

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

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

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

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

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

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

Примечание! Не рекомендую планировщику задавать задания через виртуальные диски, которые создал денвер — он их не выполнит!

Примечание 2. Демон нужно именно установить как службу и ЗАПУСТИТЬ! Иначе можно конечно через фар запускать и будет работать, НО:

Если демон запущен как служба он создаёт лог файлы и важный файл PID, через который он сообщается с индексатором без перезагрузки!
А если запустить просто фаром, то демон приодеться постоянно перегружать в ручную, чтобы он понял чего от него хотят :)

Спасибо за внимание.

Просмотров: 2613 | Добавил: sonful | Рейтинг: 0.0/0
Всего комментариев: 0
» Поиск
» Календарь
«  Март 2013  »
Пн Вт Ср Чт Пт Сб Вс
    123
45678910
11121314151617
18192021222324
25262728293031
» Архив записей
» Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2025Бесплатный хостинг uCoz