Сфинкс через несколько серверов и разделов базы данных
Привет, я хочу создать пользовательский поиск, полностью управляемый sphinx. Проблема в том, что мои данные распределены по нескольким серверам и базам данных, а некоторые из них разделены. Итак, в конце концов у меня есть три источника данных, один - таблица с основными пользовательскими данными, и она не разбита на разделы, вторая - таблица на другом сервере, где хранятся текущие действия пользователей, которые в данный момент входят в систему, с некоторой базовой информацией, а в-третьих - данные профиля пользователя, полностью разделены (16 сегментов) и на том же сервере, что и живые пользователи
нет проблем построить три отдельных индекса... но я хочу один поиск один основной индекс
мой базовый индекс по данным профиля работает очень хорошо, но так как я не хочу разделять процесс поиска, я хочу объединить все данные с разных серверов...
я пробовал MVA, определяя тип источника как SOURCE, где я мог бы легко определить, например. хост, пользователь, проход, но это не поддерживается, затем я попытался передать некоторые переменные типу запроса, но с нулевым эффектом
Затем я просмотрел некоторое слияние индексов, но пока не нашел решения. не runquery не поддерживает что-то подобное
похоже, моя единственная надежда состоит в том, чтобы получить все данные и сгенерировать xml, а затем передать sphinx, но, насколько мне известно, я теряю обновления живого индекса, а также обновления дельта-индекса, что является проблемой для моего...
Есть какой-либо способ сделать это? что-то, о чем я не думаю? или ошиблись?
2 ответа
Есть несколько вариантов, как вы можете объединить данные в Sphinx:
- Вы можете использовать несколько 'source's in' index ', это, вероятно, вы хотели бы попробовать в первую очередь
- Вы можете использовать распределенный индекс Sphinx (включая наличие разных узлов на разных серверах с автоматическим объединением результатов родительским узлом)
- Вы можете использовать индексатор
--merge
, но я думаю, что это не имеет смысла в вашем случае