2014-01-25 36 views
0

在我們的生產系統中,我們仍在使用(重新)輪胎進行elasticsearch。
我的問題是如何運行索引的導入任務,並提供來自mongoid的排序數據。例如。我希望索引9000萬條記錄,同時用戶可以訪問系統,並且我希望實現將最後插入的記錄首先編入索引,以便用戶可以找到最新的記錄(最相關的記錄 - 通過created_at )。
那麼,有沒有辦法,我如何通過使用實現這一點:
rake environment tire:import CLASS=Document FORCE=trueRuby on Rails - 輪胎 - elasticsearch,如何對輸入的數據進行排序?

回答

1

我想看看手動導入它們。編寫自己的腳本,有像

User.order('created_at DESC').find_in_batches do |batch| 
    Tire.index("users").import batch 
end 

或使用其導入工具在readme東西的例子:

User.index.import User.order('created_at DESC') 

如果您的網站被廣泛應用於我會被誘惑旋轉了一個不同核心或solr實例,導入一切,然後切換您的應用程序使用新的。

希望有所幫助。

編輯:

如果您正在使用的軌道,然後確保你在腳本中包含(配置/環境)您的Rails環境。如果需要很長時間才能導入,那麼您可能需要使用'nohup ruby​​ my_script.rb> script_out.log 2> '來運行腳本,因此它不會綁定到您的ssh會話。