在生产环境中设置带有导轨的太阳黑子solr

时间:2011-02-08 19:21:28

标签: ruby-on-rails solr production-environment sunspot

我尝试了各种链接,但我似乎无法找到一个很好的资源来创建一个在生产中使用rails的运行solr实例。

我知道您必须为生产设置solr服务器。我已尝试使用tomcat设置solr但我似乎无法将其链接到rails应用程序。

我可以使用哪些好的资源吗?

由于

2 个答案:

答案 0 :(得分:42)

Sunspot gem包含sunspot-solr二进制文件。最简单的设置就是运行sunspot-solr start。根据应用程序的部署方式,您可能还在Capistrano部署中包含一个任务,该任务使用Sunspot提供的rake任务来启动Solr服务器。即,rake sunspot:solr:start RAILS_ENV=production

从中获得更深入的内容可能涉及:将Tomcat作为独立服务安装,使用自己的初始化脚本(或Upstart配置)启动和停止,理想情况下由monit或god监控;在Tomcat中下载和部署solr.war,并配置solr.xml以引用磁盘上方便的位置,以便存储索引数据solrconfig.xmlschema.xml

Solr wiki还包含installing Solr with Tomcatother servlet containers的页面。

在上述任何一个自托管选项中,要记住太阳黑子的重要一点:禁用其自动提交,并依赖于autoCommit中Solr自己的solrconfig.xml设置。您可以通过在auto_commit_after_request: false中设置config/sunspot.yml来停用这些提交。

最后,如果您对将所有这些外包更感兴趣,还可以在http://websolr.com/处使用我自己谦逊的托管Solr服务 - 我们只需点击几下即可启动并运行。

答案 1 :(得分:7)

此博客可能会解决您的问题:

在CentOS中使用Jetty安装Solr 4.4,并设置Solr服务器以使用Sunspot Gem。 (http://blogs.pigrider.com/blogs/26

以下是博客的部分内容: ......

8)将此配置文件schema.yml从Rails应用程序复制到正在运行的Solr 4.4实例的主目录。它将覆盖那里的Solr示例配置文件,它将设置Solr 4.4服务器以与Sunspot Gem一起使用。 cp /RailsApplicationPath/Solr/conf/schema.yml / opt / solr / solr / collection1 / conf /.

正在运行的Solr 4.4实例的主目录是/ opt / solr / solr / collection1 /。您可以从Solr管理页面http:// l o c a l h o s t:8983 / solr / admin

中找到此信息。

9)将 version 字段添加到配置文件schema.yml中以满足Solr 4.4初始化要求。实际上,需要在文件中添加两行代码。他们是:

<field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>

<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>

配置文件schema.yml最终将如下所示:

<schema name="sunspot" version="1.0">
  <types>
    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
    <!-- *** Other Sunspot fieldType Definitions *** -->
  </types>

  <fields>
    <field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>
    <!-- *** Other Sunspot field Definitions *** -->
  </fields>

  <!-- *** Other Sunspot Configurations *** -->
</schema>

...