Использование основных и дельта-индексов в сфинксе
Im переключение полнотекстового поиска на моем сайте на sphinx. Я буду использовать SphinxSE для выполнения поиска.
Я создал 2 индекса, как указано в руководстве: http://www.sphinxsearch.com/docs/manual-0.9.9.html#live-updates
Кажется, что он работает и индексирует разные вещи в своем собственном индексе, но Im несколько смущен тем, как я должен обрабатывать обновление, слияние и перестройку индекса.
Как я понимаю, мне нужно запустить "indexer delta -rotate" каждые 5 минут или около того, что добавит новые представления в индекс. Затем один раз в день я собирал дельта-индекс в основной индекс, запустив "indextate delta -rotate". то раз в месяц или около того я запустил "indexer -all", чтобы перестроить все индексы.
Я делаю это правильно, или я чего-то не хватает?
Ответы
Ответ 1
- rotate будет просто создавать индекс в tmp (нужен дисковый пробел) и переключать + перезапускать searchd, когда это будет сделано.
о delta, вам нужно использовать предварительный запрос для вычисления "limit" max (id)
основные индексы id ниже предела, а delta - до этого предела.
если у вас есть временная метка (если она указана, если возможно), вы можете ее использовать
main → где timefile < Cегодня()
delta → где timefile >= today()
Ответ 2
Звучит очень похоже на настройку, которую я сделал для клиента. И нет, поиск не прекратит работать во время обновлений. Из документов Sphinx:
- вращение используется для вращения индексов. Если у вас нет ситуации, когда вы можете воспользоваться функцией поиска в автономном режиме, не беспокоя пользователей, вы почти наверняка придется поиск выполняется при индексировании новых документы. --rotate создает вторую индекс, параллельный первому (в в том же месте, просто включив .new в имена файлов). После завершения индексатор уведомляет searchd посредством отправки Сигнал SIGHUP, и searchd будет попытаться переименовать индексы (переименование существующих для включения .old и переименование .new для замены их), а затем начать работу с более новые файлы. В зависимости от настройки of seamless_rotate, может быть небольшая задержка в возможности поиска новые индексы.