28

我尝试了各种链接,但似乎找不到一个好的资源来创建一个在生产中与 rails 一起工作的正在运行的 solr 实例。

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

有什么好的资源可以使用吗?

谢谢

4

2 回答 2

42

太阳黑子 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 有一点需要牢记:禁用其自动提交,并依赖 SolrautoCommitsolrconfig.xml. 您可以通过auto_commit_after_request: falseconfig/sunspot.yml.

最后,如果您对外包所有这些更感兴趣,还有我自己在http://websolr.com/上托管的简陋的 Solr 服务——只需单击几下,我们就可以让您启动并运行。

于 2011-02-08T23:57:26.913 回答
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://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>

……

于 2013-09-08T18:29:40.540 回答