これは非常に奇妙です。私は3つのモデル(A、B、C)を持っています。 crontabがそれを実行するときに完全に動作していました。私は手動でrake ts:index RAILS_ENV=production
を起動するとスフィンクスが特定のモデルのインデックスを作成していないと考える
最近、私はモデルA.
のための新しいエントリをインデックスに問題を抱えていた、インデックスが正常に動作します。エラーなし、問題ありません。しかし、モデルB、Cのみが更新されます。モデルAは更新されません。私はすべてのログをチェックしたが、問題はなかった。ここで
はsearchd.log
です:
[Mon Nov 29 15:02:27.920 2010] [ 7280] rotating indices (seamless=1)
[Mon Nov 29 15:02:28.211 2010] [ 7280] rotating index 'b_core': success
[Mon Nov 29 15:02:28.215 2010] [ 7280] rotating index 'c_core': success
[Mon Nov 29 15:02:28.216 2010] [ 7280] rotating finished
あなたはa_core
は表示されませんわかります。これらはすべてうまくいきました。私はそれが実行されて見たとき、それはインデックスA
でしたが、最後に更新されたときに私のsphinx dbをチェックしたとき、それは更新されませんでした。すべてのSphinx dbの許可はすべて同じです。
インデックス作成を正常に実行するには、古いsphinx dbを削除し、ts:rebuild
全体を起動するしかありません。私はproduction.sphinx.conf
を削除しようとしていません。
これまでデルタインデックスを追加しようとしました。デルタインデックスは何とかできませんでしたが、通常のインデックス作成はうまくいきました。それで、モデルAの索引付けが破られました。とにかくそれが壊れたことはわかりませんでした。その後、列を削除せずにデルタインデックスを無効にしました。 (私は、インデックス作成がモデルAで正常に動作していることはまだ分かっていませんでした)。それから、今日、モデルAのインデックス作成に問題があることがわかりました。だから私は多分私のデータベース内のデルタ列を削除していないと思った。だから私は列を削除し、MySQL、Apache、モデルAのインデックスを再起動しても更新されません。
デルタインデックスとは関係ないと思いますが、私が追加したので、すべてのA、B、Cモデルのデルタインデックスが削除されました。それが壊れなければ、ただ1つのモデルの代わりにすべてを破壊するはずです。
助けてください。ありがとうございました。
EDIT モデルそれが判明し
# ThinkingSphinx Index
define_index do
indexes :name, :sortable => true
indexes address
indexes city
indexes state
indexes country
indexes spot_type
indexes season
indexes description
has rating_average
# set_property :delta => true
end
モデルB
# ThinkingSphinx Index
define_index do
indexes name
indexes duration
has budget, created_at, rating_average
# set_property :delta => true
end
インデックスをAとBで定義する方法を教えてください。 – tjeden
@tjeden - 私の更新をご覧ください。ありがとうございました。 – Victor