Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在生产环境中使用rails设置sunspot solr_Ruby On Rails_Solr_Production Environment_Sunspot - Fatal编程技术网

Ruby on rails 在生产环境中使用rails设置sunspot solr

Ruby on rails 在生产环境中使用rails设置sunspot solr,ruby-on-rails,solr,production-environment,sunspot,Ruby On Rails,Solr,Production Environment,Sunspot,我尝试了各种链接,但似乎找不到一个好的资源来创建一个在生产环境中与rails一起运行的solr实例 我知道您必须为生产设置solr服务器。我尝试过用tomcat设置solr,但我似乎无法将其链接到rails应用程序 有什么好的资源我可以使用吗 谢谢太阳黑子宝石包括太阳黑子solr二进制。最简单的设置就是运行太阳黑子solr start。根据应用程序的部署方式,您还可以在Capistrano部署中包含一个任务,该任务使用Sunspot提供的rake任务来启动Solr服务器。也就是说,rake su

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

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

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


谢谢

太阳黑子宝石包括
太阳黑子solr
二进制。最简单的设置就是运行
太阳黑子solr start
。根据应用程序的部署方式,您还可以在Capistrano部署中包含一个任务,该任务使用Sunspot提供的rake任务来启动Solr服务器。也就是说,
rake sunspot:solr:start RAILS\u ENV=production

从中获得更深入的信息可能包括:将Tomcat作为独立服务安装,使用自己的初始化脚本(或配置)启动和停止,最好由monit或god监控;在Tomcat中下载和部署solr.war,并将solr.xml配置为指向磁盘上方便的位置以存储索引数据、
solrconfig.xml
schema.xml

Solr wiki还包括一个关于和的页面


在上述任一自托管选项中,Sunspot都需要记住一点:禁用其自动提交,并依赖Solr自己在
solrconfig.xml
中的
autoCommit
设置。您可以通过在
config/sunspot.yml
中设置
auto\u commit\u after\u request:false
来禁用这些提交


最后,如果你对外包这一切更感兴趣,还有我自己微薄的托管Solr服务,我们只需点击几下就可以让你启动并运行。

这个博客可能会解决你的问题:

在CentOS中使用Jetty安装Solr 4.4,并设置Solr服务器以使用Sunspot Gem。()

以下是博客的部分内容:

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

正在运行的Solr4.4实例的主目录是/opt/Solr/Solr/collection1/。您可以在Solr admin页面http://loc a l h o s t: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>


……我终于在ubuntu 10.04服务器上用tomcat运行了solr。剩下的最后一件事是如何将其连接到我的rails应用程序?@Nick,您能否提供更多信息,说明为什么在这种情况下,我们应该将请求后自动提交设置为false?这是我见过的唯一提到的地方。提交很昂贵,而且会阻止其他写入。在每个请求之后发布提交对于开发和生产中的小型站点来说都是不错的,但是随着写入流量的增长,它将成为所有Solr更新的负担。您是对的,这可能目前还没有很明显的记录。在Websolr,我们在服务器端解决这一问题,完全忽略传入的提交,而采用自动提交设置。请求后自动提交:false适用于太阳黑子管理的索引。如果您有自定义索引,请删除!从。索引!只需使用.index。我们让Solr服务器使用索引100%运行CPU!。移除!每10秒自动提交一次,使其下降到3%。