所以每天早上启动我的服务器,我需要做下面的任务..

>> sunspot-solr stop
>> sunspot-solr start
>> script/console
>> Organization.reindex
>> Event.reindex
>> Deal.reindex
>> exit
>> script/server

有没有什么办法可以建立一个快捷方式在我的〜/ .profile文件作为执行这一切对我来说没有我打字吧每天的别名?

此类似,虽然它不工作?

alias blam='cur && sunspot-solr stop && sunspot-solr start && script/console && Organization.reindex && Event.reindex && Deal.reindex && exit && script/server'
有帮助吗?

解决方案

也许这将缓解一些痛苦?

#Rakefile
desc "Reindex the organizations, events, and deals Solr indexes."
task :reindex => :environment do
  Organization.reindex
  Event.reindex
  Deal.reindex
end

然后每天早晨运行

> sunspot-solr stop
> sunspot-solr start
> rake reindex
> script/server

其他提示

这是我第一次的StackOverflow职位,这是一个老问题,但我觉得我可以以某种方式作出贡献:d 重建Solr的指数周期性是非常昂贵的任务,你应该避免这样搞生产!你正在寻找可以通过三种方式能最好地实现:

1 - 编辑你sunspot.yml并添加行

auto_commit_after_request = true

这会告诉黑子更新索引的每次一个新的模型条目被保存(或删除)。这将让你的索引更新,但可以是昂贵的。

2 - 创建一个rake任务(可使用Cron上在DelayedJob工人运行)这样

task :update_index => :environment do
Sunspot.commit_if_dirty
end

这是不是在做每一个模型更新后提交便宜得多,但要记住,这个人介绍给你的指标,这是很好的补充,但可以删除是很讨厌最终一致性的问题:它会产生孤立项在你的指数。这也是与第三方式有问题来解决这个问题 - >

3 - 编辑您的solrconfig.xml中文件并设置autoCommit特征与maxTime提交之间的任意的间隔(记住以毫秒为单位使用次)。 5分钟将是大多数应用程序很好,但你要测试这个自己。

希望这有助于!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top