Объединить запрос MySQL с запросом Sphinx?

#mysql #sphinx

#mysql #sphinx

Вопрос:

У меня есть сайт, который использует сложный запрос Sphinx, основанный на сложной конфигурации Sphinx. Мы очищаем базу данных каждый день и заново запускаем всю конфигурацию Sphinx, что занимает часы. Проблема в том, что записи, которые были удалены из базы данных, все еще находятся в индексе Sphinx за этот период времени. Есть ли в любом случае возможность, чтобы запрос Sphinx каким-либо образом запрашивал Mysql, чтобы исключить удаленные идентификаторы?

Ответ №1:

Если вы можете подготовить запрос, который вернет идентификаторы, которые нужно исключить из MySQL, тогда вы можете использовать sql_query_killlist в другом индексе и объединить основной с новым через распределенный индекс, а затем, когда вы сделаете запрос, он подавит все идентификаторы, возвращенные запросом в sql_query_killlist. Прочитайте о схеме ‘main delta’ и списках исключений в руководстве Sphinx, чтобы узнать больше об этом.