сфинкс через несколько серверов и разделов базы данных - PullRequest
1 голос
/ 07 февраля 2011

Привет, я хочу создать пользовательский поиск, полностью управляемый sphinx. проблема в том, что мои данные распределены по нескольким серверам и базам данных, причем некоторые из них разбиты на разделы. Так в наконец, у меня есть три источника данных, один из них - таблица с основными пользовательскими данными, а ее нет секционирована, вторая - это таблица на другом сервере, которая в данный момент хранит живое действие пользователей войдите в систему с некоторой базовой информацией, а третье - данные профиля пользователя, полностью разделенные (16 сегментов) и на том же сервере, что и живые пользователи

нет проблем для построения трех отдельных индексов ... но я хочу один поиск один главный Индекс

мой базовый индекс по данным профиля работает очень хорошо, но так как я не хочу отделяться процесс поиска Я хочу объединить все данные с разных серверов ...

Я попробовал MVA, определив тип источника как SOURCE, где я мог бы легко определить, например. хозяин, Пользователь, передать, но это не поддерживается, затем я попытался передать некоторые переменные в источник запроса тип но с нулевым эффектом

Затем я просмотрел некоторое объединение индексов, но пока не нашел решения этот. not runquery не поддерживает что-то подобное

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

есть ли способ сделать это? что-то, о чем я не думаю? или ошиблись?

Ответы [ 2 ]

0 голосов
/ 07 мая 2011

для этого типа задачи используйте скорее asticsearch

0 голосов
/ 10 февраля 2011

Существует несколько вариантов объединения данных в Sphinx:

  1. Вы можете использовать несколько 'source's in' index ', это, вероятно, вы хотели бы попробовать сначала
  2. вы можете использовать распределенный индекс Sphinx (включая наличие разных узлов на разных серверах с автоматическим объединением результатов родительским узлом)
  3. вы можете использовать индексатор --merge, но я полагаю, что в вашем случае это не имеет смысла
...