Для тех, кому очень нехватает функционала поиска начинаем тестирования функционала «поиск пользователей» (извините за каламбур :) ) при помощи Сфинкса.
шаблон пока стандатный. в ToDo добавить дату регистрации, пол, а также «добавить в друзья» и «написать ЛС»
Ищет по логину и Настоящему имени пользователя. Подозреваю, что запрос к базе неоптимизированный, если кто-нибудь поможет с оптимизацией, буду рад. Крон работает по схеме: раз в час топики, раз в 10 минут комментарии, раз в 5 минут пользователи. Также хочу добавить, хост с каналом 256Кбит/с в обе стороны с ограничением в 10 гигов и отсутствующим кэшем, так что лишний раз лайвстритэффект устраивать не стоит :)
Если все пойдет гладко (и что самое главное: если это хоть кому то нужно), то вечером 11 числа выложу в модули, либо передам Максиму aka ort, для включения в основной функционал livestreet.
ЗЫ. также хочу сказать спасибо Vilz и eXtravert за помощь в предварительном тестирование и отлове багов. и за всю остальную помощь:) UPD: к сожалению в связи с выходом версии 0.3 приходится переделывать + занимаюсь оптимизацией запроса к базе. ждем в ближайшие пару дней с бонусом) UPD2: Наконец то добил поиск по блогам. UPD3: Ссылка на модуль livestreet.ru/addons/22/
Поставил, работает. Пара вопросов, он пользователей должен просто по имени искать? Что то у меня не ищет, пишет ничего не нашлось. И такой вопрос в readme модкуля сказано добавить в крон
/usr/local/bin/indexer --rotate blogsIndex > /dev/null 2>&1
/usr/local/bin/indexer --rotate usersIndex > /dev/null 2>&1
Больше ничего не надо?
Как насчет топиков и комментов?
Может еще добавить /usr/local/bin/indexer --all --rotate
После установки сфинкса в директории, куда он установится ( в дебиане/убунту это обычно/usr/local/bin/, у бздунов, если не ошибаюсь /opt/local/bin/) создается три приложения:
1) searchd. Это, собственно, сам демон Sphinx'a.
2) search. Утилита для поиска из консоли
3) и файл indexer, который производит индексацию БД.
Для чего же нужен indexer?
Итак, как уже писал товарищ kruftвот тут
командой /usr/local/sphinx/bin/indexer --all мы запускаем первичную индексацию БД, для того, чтобы Сфинксу было где искать. После чего запускаем сам Сфинкс
Ну а что происходит, когда мы запускаем
?
файл indexer добавляет полученные за n часов (минут, в зависимости от настройки cron) к уже существующим), в данном случае для индексов blogs (т.е. поиска по блогам) и перенапрявляет вывод приложения в никуда (> /dev/null 2>&1).
следовательно. если вы хотите обновлять индексы не только по блогам, то вам следует добавить и остальные индексы (такие как usersIndex, а также указанные в вышеприведенном мануале topicIndex и commentsIndex)
Ну и напоследок.
Может еще добавить /usr/local/bin/indexer --all --rotate
По этому поводу уже говорили
Самый простой способ запустить индексацию — это выполнить или добавить в планировщик команду /usr/local/sphinx/bin/indexer --all
, однако данный способ является сильно неоптимальным, поскольку топики обновляются (точнее появляются новые) значительно реже, нежели комментарии, поэтому частоту обновления индекса комментариев должны быть больше.
правда тут небольшая ошибка была допущена.
данную команду нельзя запускать при включенном сфинксе, он просто не отработает :)
правильней команда будет /usr/local/bin/indexer --all --rotate, но тут уже как вы пожелаете. Управление с помощью индексом позволит вам распределить нагрузку, поскольку действительно топики, блоги и юзеры появляются гораздо реже комментариев.
Спасибо за ликбез, все поставил как написано в инструкции модуля. Что то на любой поисковый запрос выводит «Удивительно, но поиск не дал результатов».
Команды:
/usr/local/bin/indexer --rotate blogsIndex
/usr/local/bin/indexer --all --rotate
Команда запуска демона /usr/local/bin/searchd
выдает такое:
using config file '/usr/local/etc/sphinx.conf'...
FATAL: failed to lock pid file '/var/log/sphinx/searchd.pid':
Resource temporarily unavailable (searchd already running?)
Ну это может и правильно, у меня /usr/local/bin/searchd в rc.local прописан.
Файлы, blogsIndex.spa, blogsIndex.spd, blogsIndex.sph, blogsIndex.spi, blogsIndex.spm, blogsIndex.spp и соответственно blogsIndex.new, commentsIndex, commentsIndex.new, topicIndex, topicIndex.new, usersIndex, usersIndex.new в папке /usr/local/SphinxIndex/ создаются.
10 комментариев
/usr/local/bin/indexer --rotate blogsIndex > /dev/null 2>&1
/usr/local/bin/indexer --rotate usersIndex > /dev/null 2>&1
Больше ничего не надо?
Как насчет топиков и комментов?
Может еще добавить /usr/local/bin/indexer --all --rotate
Спасибо.
После установки сфинкса в директории, куда он установится ( в дебиане/убунту это обычно /usr/local/bin/, у бздунов, если не ошибаюсь /opt/local/bin/) создается три приложения:
1) searchd. Это, собственно, сам демон Sphinx'a.
2) search. Утилита для поиска из консоли
3) и файл indexer, который производит индексацию БД.
Для чего же нужен indexer?
Итак, как уже писал товарищ
командой /usr/local/sphinx/bin/indexer --all мы запускаем первичную индексацию БД, для того, чтобы Сфинксу было где искать. После чего запускаем сам Сфинкс
Ну а что происходит, когда мы запускаем
?
файл indexer добавляет полученные за n часов (минут, в зависимости от настройки cron) к уже существующим), в данном случае для индексов blogs (т.е. поиска по блогам) и перенапрявляет вывод приложения в никуда (> /dev/null 2>&1).
следовательно. если вы хотите обновлять индексы не только по блогам, то вам следует добавить и остальные индексы (такие как usersIndex, а также указанные в вышеприведенном мануале topicIndex и commentsIndex)
Ну и напоследок.
По этому поводу уже говорили
правда тут небольшая ошибка была допущена.
данную команду нельзя запускать при включенном сфинксе, он просто не отработает :)
правильней команда будет
/usr/local/bin/indexer --all --rotate, но тут уже как вы пожелаете. Управление с помощью индексом позволит вам распределить нагрузку, поскольку действительно топики, блоги и юзеры появляются гораздо реже комментариев.
Команды:
/usr/local/bin/indexer --rotate blogsIndex
/usr/local/bin/indexer --all --rotate
Команда запуска демона /usr/local/bin/searchd
выдает такое:
Ну это может и правильно, у меня /usr/local/bin/searchd в rc.local прописан.
Файлы, blogsIndex.spa, blogsIndex.spd, blogsIndex.sph, blogsIndex.spi, blogsIndex.spm, blogsIndex.spp и соответственно blogsIndex.new, commentsIndex, commentsIndex.new, topicIndex, topicIndex.new, usersIndex, usersIndex.new в папке /usr/local/SphinxIndex/ создаются.
Что может быть? Подскажите пожалуйста.
/usr/local/bin/indexer --all --rotate?