因此,每天早上为了启动我的服务器,我需要执行以下任务。
>> sunspot-solr stop
>> sunspot-solr start
>> script/console
>> Organization.reindex
>> Event.reindex
>> Deal.reindex
>> exit
>> script/server有没有办法在我的~/.配置文件中创建一个快捷方式作为别名,以便在不需要我每天输入的情况下为我执行所有这些操作?
就像这样,虽然它不能工作?
alias blam='cur && sunspot-solr stop && sunspot-solr start && script/console && Organization.reindex && Event.reindex && Deal.reindex && exit && script/server'发布于 2010-08-05 21:34:24
也许这会减轻一些痛苦?
#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发布于 2011-02-26 23:57:11
这是我的第一篇StackOverflow帖子,这是一个老问题,但我觉得我可以做出贡献:D定期重建Solr索引是一项非常昂贵的任务,你应该避免在生产中做这样的事情!您正在寻找的东西可以通过以下三种方式获得最佳效果:
1-编辑您的sunspot.yml并添加行
auto_commit_after_request = true
这将告诉sunspot在每次保存(或删除)新模型条目时更新索引。这将保持您的索引更新,但可能是昂贵的。
2-创建一个rake任务(可以在DelayedJob工作进程中使用cron运行),如下所示
task :update_index => :environment do
Sunspot.commit_if_dirty
end
这比在每次模型更新后进行提交的开销要小得多,但请记住,这会给索引带来最终一致性的问题,这对于添加来说是很好的,但对于删除来说可能会很糟糕:它将在索引中生成孤立条目。这也是解决此问题的第三种方法的问题->
3-编辑您的solrconfig.xml文件,并使用maxTime将autoCommit特性设置为提交之间的任意间隔(记住使用以毫秒为单位的时间)。对于大多数应用程序来说,5分钟就足够了,但你应该自己测试一下。
希望这能有所帮助!
https://stackoverflow.com/questions/3415114
复制相似问题