连接Tomcat,Solr和sunspot_rails之间的点

时间:2014-04-16 22:34:53

标签: ruby-on-rails tomcat solr lucene sunspot-rails

关于如何安装Solr的多个教程,所以我可以在我的应用程序中开始使用sunspot_rails,我真的很困惑,实际上如何让我的Rails应用程序在多个环境中使用单个Solr应用程序(开发,测试,产品)。在我得到它的情况下,我会试着理解整个设置。


Rails应用程序

  • 通过sunspot_rails gem向<{3}} *发出请求
  • 其中:8981由sunspot.ral中的sunspot_rails设置(因此8981可以生产,8982是开发,8983是测试)。
  • 为什么sunspot.yml指定数据目录?这不是由Tomcat / Solr安装配置文件处理的吗?我认为我的主要缺点是你可以A)将Solr单独设置为独立安装或B)通过rake sunspot运行Solr:solr:start并从gem中运行应用程序。当我通过Tomcat进行Solr的独立安装时,我是否不需要执行rake任务?那么在sunspot.yml中指定path: /solr/./production是什么意思?

Tomcat的

  • 处理在启动时运行Solr实例的句柄(Tomcat在init.d启动脚本中),并在端口8080上运行(目前,此端口是访问Solr接口的唯一方法)
  • 如何将端口8981-8983映射到此运行的Solr实例,并将每个端口映射到其各自的数据目录?
  • 我应该将Solr数据目录存储在我的rails app目录下,还是将其保存在一个完全独立的位置?

Solr的

  • 似乎所有这些应用程序都有配置,但我不知道优先级在哪里。

我使用的是CentOS(网络主机),Ubuntu VM(本地开发机器),tomcat7和最新版本的Solr。

1 个答案:

答案 0 :(得分:1)

Whelp,我想通了。我在this article之后设置了一个多核环境(绝对不要在核心名称中使用空格),并使用找到的here sunspot_rails配置。为了澄清,sunspot.yml中的path:引用基本上是在引用“核心”时添加到URL上的内容:即http://mydomain.com:8080 / solr / production (强调表明我的观点)。

所以现在我不必关心运行rake任务来启动Solr,因为它总是在启动时通过Tomcat的单个Solr实例运行所有3个内核。