Solr全文搜索在生产环境中使用,哪个更好:sunspot:solr捆绑解决方案还是独立的tomcat+solr?

4

我们在开发模式下已经使用sunspot的Solr gem有一段时间了。现在需要将应用程序迁移到生产环境。

在生产环境中使用捆绑的sunspot gem设置solr是否有任何缺点?

我通常喜欢tomcat + solr的想法,但是它的设置更加复杂。

Sunspot捆绑的gem很容易。只要我们有1个Rails项目分为3个阶段(staging、production、QA)、2个应用服务器和一个数据库/solr服务器,我们就必须:

  1. 将rails项目推送到数据库服务器
  2. 在db服务器上使用bundle exec rake sunspot:solr:start以生产环境启动solr(我们只是为每个solr实例使用不同的端口)
  3. 使用rake sunspot:solr:reindex重新索引
  4. 修改sunspot.yml以使app服务器连接到特定阶段端口的数据库服务器

以上适用于X个产品/分期solrs实例。

Tomcat6 + Sunspot并不那么容易和具有时间/结果的效果。据我所知(修正我),人们必须:

  1. 在数据库服务器上安装和维护tomcat
  2. 如果我们想要3个solr实例-则部署3个具有单独solrs的solr wars(或使用相当难以设置的多核心solr)
  3. 将Rails项目部署到数据库服务器上
  4. 每次我们在Rails中更改模式/配置/任何内容时,我们都必须生成solr xml和confs并将其复制到tomcat webapps中
  5. 修改solr conf/xml中的目录,使其指向索引文件等。
  6. 在每个rails部署中重新加载tomcat solr应用程序实例,其中包括一些脚本和"非rails"方法来进行部署过程:)
1个回答

3
最近我做了类似的事情,并且不得不回答相同的问题。我的问题空间看起来像是有两种语言(所以最好有两个核心,也许将来还有其他搜索选项),需要在几个表上索引数据和搜索/计数方面,部分在层次结构中,例如产品组和汽车品牌/型号/类型/建造年份等层次标签。
据我所见,Sunspot 最适合(唯一适合)具有相对“平坦”数据的情况,最好只需为单个模型定义要使用的字段。一旦您需要将多个模型组合成单个文档以进行 facets,它就变得困难了。(但由于我没有使用 Sunspot,因此我无法确定)。您仍然可以(并且应该)使用 rsolr gem 与 Solr 进行通信。但是,如果您在开发中使用 Sunspot,它很可能已经适用于您。
关于 tomcat 的详细信息:
1. 在 db 服务器上安装和维护 tomcat
是的,有些工作,但可以处理
2. 假设我们想要有 3 个 solr 实例 - 使用单独的 solrs 部署 3 个 solr wars(或使用非常难以设置的多核 solr)
我使用了多核。实际上,设置起来并不难。您最好还是学习一些 Solr 配置知识。多核的最大部分只是有两个包含基本相同的 XML 配置文件集的子目录。
3. 将 rails 项目部署到 db 服务器上
无论如何都必须这样做 :)
4. 每次我们在 rails 中更改模式/配置/任何内容时,我们都必须负责生成 solr xml 和 confs,并将其复制到 tomcat webapps 中
是的,编写几个脚本。或者,您可以有一个包含 tomcat/solr 文件夹和 Rails 项目文件夹的 git 存储库,或者建立这些文件夹的符号链接。我还没有找到一个好的解决方案,所以不时需要复制一些东西。
5. 修改 solr conf/xml 中的目录,使其指向索引文件等。
是的,一些符号链接可以帮助保持简单
6. 在每次 rails 部署时重新加载 tomcat solr 应用程序实例,如果包括某些脚本和“非 rails”部署过程,则需要一些操作 :)
仅当部署实际上更改与搜索相关的任何内容时才需要。编写几个脚本。有一些 Rails 部署解决方案可以帮助,但是由于我不介意手动完成一些事情,因此我没有费心安装。
总的来说,我认为我对 Solr 的配置具有更多的控制和洞察力,并且可以更好地使用其中一些更复杂的功能,例如带有层次结构的 facets。实际上,Solr 一开始可能看起来有点复杂,但是经过一段时间后,您就会了解它,然后它就成为了一个很棒的工具。

此解决方案在此处显示:http://internetmodulation.com/2011/01/10/sunspot-solr-tomcat-ubunut.html.html - wojciechz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接