4

Capistranohttps://gist.github.com/doitian/1795439にSunspotSolrを追加するためにこのスニペットをフォローしていますが、cap solr:reindexを実行すると、(予想どおり)質問が表示されます。すべてのインデックスを削除するので、「はい」と答えますが、端末は応答を待っているようです。

これは、インデックスを再作成するためのコードです。

  desc "reindex the whole database"
  task :reindex, :roles => :app do
    stop
    run "rm -rf #{shared_path}/solr/data"
    start
    run "cd #{current_path} && #{rake} RAILS_ENV=#{rails_env} sunspot:solr:reindex" 
  end

これはメッセージです:

  * executing "cd /home/user/rapps/app/current && bundle exec rake RAILS_ENV=production sunspot:solr:reindex"
    servers: ["9.9.9.9"]
    [9.9.9.9] executing command
 ** [out :: 9.9.9.9] *Note: the reindex task will remove your current indexes and start from scratch.
 ** [out :: 9.9.9.9] If you have a large dataset, reindexing can take a very long time, possibly weeks.
 ** [out :: 9.9.9.9] This is not encouraged if you have anywhere near or over 1 million rows.
 ** [out :: 9.9.9.9] Are you sure you want to drop your indexes and completely reindex? (y/n)
y

どうすればそのメッセージを回避できますか?また、このrakeをCronで実行したいので、以前にどのように答えを出すか、デフォルト構成を設定できますか?そして、インデックスを再作成するための最良/効率的な方法は何ですか?

前もって感謝します。

4

3 に答える 3

6

私は最近この問題に遭遇し、これが有用な回避策であることがわかりました。

yes | bundle exec rake sunspot:reindex
于 2013-07-06T14:53:08.877 に答える
4

プルリクエストは、黒点の宝石にマージされました。rake sunspot:reindex[,,true]を使用して、無音の再インデックスをトリガーできるはずです。

もう一度ミームは惑星を救います

于 2013-04-13T00:44:09.393 に答える
2

sunspot_railsソースを確認した後、現在、このメッセージを強制的に通過させる方法はありません。ここで定義されているレーキタスクコードを参照してください

サイレントオプションをサポートするためのrakeタスクのプルリクエストが(1か月前に)送信されました(プルリクエストはこちら)が、まだマージされていません。

私はどちらかです:

  1. ここにある黒点宝石リポジトリをフォークし、自分でrakeタスクに変更を加えます(次に、フォークした宝石を使用するように環境Gemfileを変更します)。
  2. Capistranoタスクにスリープコマンドを追加し(10秒のように、このコマンドが表示されるまでにかかる時間より長くなります)、標準入力に「y」を入力します。
于 2013-03-28T19:34:24.373 に答える