0

mysql には、users と management の 2 つのテーブルがあります。users テーブルには数値 ID があり、management テーブルには他のテーブルの主キーである varchar 外部キーがあります。タイプは同じではありません。これは、User モデルからインデックスを構築し、管理テーブルから 1 つの列を含めようとするときの主な問題のようです。thinkinx sphinx が生成する結合は、実行に時間がかかりすぎるため、インデックスが作成されません。管理テーブルを変更して数値 ID を使用するのが最善の解決策であることはわかっていますが、現時点ではコストが高すぎるようです。varchar フィールドが実際には数値 ID であることを考えるスフィンクスに伝える方法はありますか?そのため、テーブルを変更せずにインデックスを生成できますか?

これが明確でない場合は、曖昧すぎると思われるものを明確にするように依頼してください。

ありがとう!

4

1 に答える 1

0

外部キーにデータベース インデックスがあることを確認します。

また、生成された構成を編集したい場合は、それを行ってから、ファイルを自動的に再生成しない 2 つのオプションのいずれかを使用してインデックスを処理できます。

rake ts:index INDEX_ONLY=true
rake ts:reindex # this was only added the other day
于 2009-12-12T00:08:06.933 に答える