在生产中运行太阳黑子

时间:2011-11-05 23:40:08

标签: ruby-on-rails sunspot

我正在Ubuntu 10.4 LTS上运行Rails 3.1,并使用mongoid。我还通过this guide安装tomcat6和solr。一切都很好,但我不确定我是否配置了最好的。我在我的sunspot.yml中禁用了auto_commit_after_request,请谈谈here

我还在我的solrcongif.xml中取消注释了自动提交部分。看起来索引记录的更新比非索引记录的更新要长一些。有什么方法可以检查auto_commit_after_request是否真的关闭?

另外,当我在solr中检查分析页面时,已更新的模型似乎被加倍索引(我可以说因为还没有很多数据)。所以我有一个带有关键字的模型,但在索引中它说有3个单词的实例(一个用于创建,两个更新我在mondel上做过)。这是正常的吗?看起来这似乎会对经常更新的模型产生偏见,但也会增加索引的大小。

以下是我的config/sunspot.yml文件。如果需要,我也可以发布solrconfig.xml,但它很大,所以我现在就把它留下来。是否有关于调整太阳黑子生产的指南?谢谢!

production:
  solr:
    hostname: localhost
    port: 8080
    log_level: WARNING
    path: '/solr'
    auto_commit_after_request: false

development:
  solr:
    hostname: localhost
    port: 8982
    log_level: INFO

test:
  solr:
    hostname: localhost
    port: 8981
    log_level: WARNING

1 个答案:

答案 0 :(得分:0)

这里有很多问题。

你的大多数性能调整都是在SOlr上,而不是Sunspot,它只是Solr的一个接口。见http://wiki.apache.org/solr/SolrPerformanceFactors。正如您在提交时所指出的那样,以及它是否在后台完成会影响您应用的性能。

Solr(Lucene)中的更新实际上是通过删除旧对象并再次添加它来实现的。这可能是您发现速度差异的原因。

更新不会多次将条款添加到索引中。你必须观察别的东西。如果您使用相同的索引进行开发,有时您可能会看到旧字段名称污染索引;尝试删除整个索引(磁盘上的实际索引文件夹)并重新启动;