我尝试了各种链接,但我似乎无法找到一个很好的资源来创建一个在生产中使用rails的运行solr实例。
我知道您必须为生产设置solr服务器。我已尝试使用tomcat设置solr但我似乎无法将其链接到rails应用程序。
我可以使用哪些好的资源吗?
由于
答案 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.xml
和schema.xml
。
Solr wiki还包含installing Solr with Tomcat和other 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>
...