Thinking Sphinx - Внешний ключ с другим типом - Проблема ассоциации

У меня есть две таблицы на mysql: пользователи и управление. Таблица пользователей имеет числовой идентификатор, а таблица управления имеет внешний ключ varchar, который является первичным ключом другой таблицы. Типы не совпадают, и это кажется основной проблемой, когда я строю индекс из модели User и пытаюсь включить один столбец из таблицы управления. Соединение, которое генерирует thinkinx sphinx, требует чертовски много времени для выполнения, и поэтому индекс никогда не выполняется. Я знаю, что лучшее решение — изменить таблицу управления и использовать числовой идентификатор, но сейчас это кажется слишком дорогим. Есть ли способ просто сказать думающему сфинксу, что поле varchar на самом деле является числовым идентификатором, чтобы индекс можно было сгенерировать без изменения таблиц?

Если это неясно, пожалуйста, попросите меня разъяснить то, что кажется слишком неясным.

Спасибо!


person Daniel    schedule 11.12.2009    source источник
comment
Можете ли вы опубликовать пример схемы вашей базы данных и, возможно, несколько примеров данных, чтобы я мог лучше понять, как все устроено?   -  person Patrick Reagan    schedule 11.12.2009


Ответы (1)


Я бы убедился, что у вас есть индекс базы данных для вашего внешнего ключа.

Кроме того, если вы хотите отредактировать сгенерированную конфигурацию, вы можете сделать это, а затем обработать индекс, используя один из двух вариантов, который не создает файл автоматически:

rake ts:index INDEX_ONLY=true
rake ts:reindex # this was only added the other day
person pat    schedule 12.12.2009
comment
Я думаю, это может сработать. Я вернусь к этому в следующий понедельник и расскажу вам, как все прошло. Спасибо! - person Daniel; 12.12.2009