0

何らかの理由で、rake think_sphinx:index (または configure) 後に DB に追加されたユーザーが表示されません。サーバーを再起動して、sphinx を考えるのをやめてから、再起動して構成してみました。まだ同じ問題が発生しています。

rails c を実行して User.search を実行すると、index/configure が実行される前に作成された DB からのみ結果が得られます。

実行してこのプロジェクトを本番環境にプッシュするために、DB をフラッシュしました。

rake db:reset

次に、サーバーを再起動しましたが、この問題が発生しています。configure を実行すると、searchd.log ファイルに次のように表示されます。

[Tue Jan 15 18:56:02.491 2013] [ 1742] rotating indices (seamless=1)
[Tue Jan 15 18:56:02.499 2013] [ 1742] rotating index 'user_core': success
[Tue Jan 15 18:56:02.506 2013] [ 1742] rotating index 'synonym_delta': success
[Tue Jan 15 18:56:02.512 2013] [ 1742] rotating index 'synonym_core': success
[Tue Jan 15 18:56:02.519 2013] [ 1742] rotating index 'bar_delta': success
[Tue Jan 15 18:56:02.525 2013] [ 1742] rotating index 'bar_core': success
[Tue Jan 15 18:56:02.525 2013] [ 1742] rotating finished

そしてこれはsearchd.query.logにあります:

[Tue Jan 15 18:56:06.556 2013] 0.000 sec [ext/2/rel 8 (0,20)] [user_core]
[Tue Jan 15 18:56:06.566 2013] 0.001 sec [ext/2/rel 8 (0,20)] [user_core]
[Tue Jan 15 18:56:06.575 2013] 0.000 sec [ext/2/rel 8 (0,20)] [user_core]

DBをフラッシュしてサーバーを再起動するまで、検索が更新された結果を返さないという問題はありませんでした。その間、コードは一切変更されていません。何が問題なのかについての洞察をいただければ幸いです。また、詳細が必要な場合はお知らせください。さらに投稿できます。私はあまりにも多くの投稿をしたくはなく、人々が読んでも圧倒してしまいます。それで、私の問題をよりよく理解するために何が役立つか教えてください。

**さらに奇妙なのは、会場などの他のモデルでこの問題に遭遇していないことです. DBに保存後、検索で更新表示されるのは…

- - - - - - - - - - - - - - アップデート - - - - - - - - - - - --------------

だから私はレールコンソールを実行しました、そして私が実行した場合

User.search

ts:rebuild を実行する前に追加された最後の行で終わる 10 個の結果が得られます。しかし、私が実行すると:

User.all

データベース内のすべての行を含む 11 件の結果が返されます。最後に ts:rebuild / index / configure が実行された時間に関係なく...

ありがとう

アラン

4

1 に答える 1

1

多分私は理解していません。rake ts:build を介してインデックスを構築し、Web アプリなどにサインアップする新しいユーザーがいる場合、それらは sphinx インデックス ファイルに表示されません。rake ts:rebuild を実行しなくても表示される唯一の方法は、Sphinx がサポートしていると考えているデルタ インデックスを実行している場合であり、これによりデルタ インデックス ファイルが作成され、メイン インデックス ファイルに一度マージされます。 rake ts:rebuild を実行します。

于 2013-01-15T21:05:43.787 に答える