我尝试了各种链接,但似乎找不到一个好的资源来创建一个在生产中与 rails 一起工作的正在运行的 solr 实例。
我了解您必须为生产设置 solr 服务器。我已经尝试使用 tomcat 设置 solr,但我似乎无法将其链接到 rails 应用程序。
有什么好的资源可以使用吗?
谢谢
我尝试了各种链接,但似乎找不到一个好的资源来创建一个在生产中与 rails 一起工作的正在运行的 solr 实例。
我了解您必须为生产设置 solr 服务器。我已经尝试使用 tomcat 设置 solr,但我似乎无法将其链接到 rails 应用程序。
有什么好的资源可以使用吗?
谢谢
太阳黑子 gem 包含sunspot-solr
二进制文件。最简单的设置就是运行sunspot-solr start
. 根据应用程序的部署方式,您还可能在 Capistrano 部署中包含一个任务,该任务使用 Sunspot 提供的 rake 任务来启动 Solr 服务器。即,rake sunspot:solr:start RAILS_ENV=production
。
从中获得更深入的内容可能包括:将 Tomcat 安装为独立服务,使用自己的 init 脚本(或Upstart配置)启动和停止,最好由 monit 或 god 监控;solrconfig.xml
在 Tomcat 中下载和部署 solr.war,并将solr.xml 配置为引用磁盘上方便的位置schema.xml
来存储索引数据。
Solr wiki 还包括一个关于使用 Tomcat和其他 servlet 容器安装 Solr的页面。
在上述任何一个自托管选项中,对于 Sunspot 有一点需要牢记:禁用其自动提交,并依赖 SolrautoCommit
在solrconfig.xml
. 您可以通过auto_commit_after_request: false
在config/sunspot.yml
.
最后,如果您对外包所有这些更感兴趣,还有我自己在http://websolr.com/上托管的简陋的 Solr 服务——只需单击几下,我们就可以让您启动并运行。
这个博客可能会解决你的问题:
在 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://localhost:8983/solr/admin 找到此信息
9) 将版本字段添加到配置文件 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>
……