为 Ubuntu 12.04 和 Drupal 7 设置 apache solr 的多个核心

为 Ubuntu 12.04 和 Drupal 7 设置 apache solr 的多个核心

我正在本地设置 solr,用于开发目的并与 Drupal 7 集成。我对 tomcat 不太熟悉。我的背景主要是 LAMP 设置。

因此我按照以下说明安装了 ubuntu 为 apache solr 提供的软件包指导

  • sudo apt-get install tomcat6 tomcat6-admin tomcat6-common tomcat6-user tomcat6-docs tomcat6-examples
  • sudo apt-get install solr-tomcat

我已经成功了。apt-get 包管理器做得很好,让我可以设置 solr,但只使用一个核心。

需要采取哪些步骤来启用 apache solr 的多核设置?

以下是我的solr.xml文件:

sudo nano /var/lib/tomcat6/conf/Catalina/localhost/solr.xml

<!--
    Context configuration file for the Solr Web App
-->

<Context path="/solr" docBase="/usr/share/solr"
   debug="0" privileged="true" allowLinking="true" crossContext="true">
  <!-- make symlinks work in Tomcat -->
  <Resources className="org.apache.naming.resources.FileDirContext" allowLinking="true" />

  <Environment name="solr/home" type="java.lang.String" value="/usr/share/solr" override="true" />
</Context>

答案1

OP 中的指南是一个快速入门指南,并未涉及多核配置。

solr网站上有一个官方指南:http://wiki.apache.org/solr/CoreAdmin

它很长。我将引用初始设置部分。

部分引文

配置

要启用对动态 SolrCore 管理的支持,请将一个名为 solr.xml 的文件放在 solr.home 目录中。以下是示例 solr.xml 文件:

<solr persistent="true" sharedLib="lib">
 <cores adminPath="/admin/cores">
  <core name="core0" instanceDir="core0" />
  <core name="core1" instanceDir="core1" />
 </cores>
</solr>

您还可以在 solr.xml 中指定可在 solrconfig.xml 和 schema.xml 文件中使用的属性。

<solr persistent="true" sharedLib="lib">
 <property name="snapshooter" value="/home/solr-user/solr/bin/snapshooter.sh" />
 <cores adminPath="/admin/cores">
  <core name="core0" instanceDir="core0">
    <property name="dataDir" value="/data/core0" />
  </core>
  <core name="core1" instanceDir="core1" />
 </cores>
</solr>

这些属性可以是容器范围(即在 < solr > 之后但在 < core > 元素之外指定),在这种情况下,每个核心都会自动继承它。因此,它们可以在任何核心的配置文件中使用。

属性也可以在核心的范围内定义(在 < core > 元素内),在这种情况下,它们只能在该核心的范围内使用。如果容器范围内已存在同名的属性,则它将被覆盖。

除此之外,核心范围内还会自动添加一些属性。它们是:

solr.core.name -- The core's name as defined in solr.xml

solr.core.instanceDir -- The core's instance directory (i.e. the directory under which that core's conf/ and data/ directory are located)

solr.core.dataDir -- The core's data directory (i.e. the directory under which that core's index directory are located)

solr.core.configName -- The name of the core's config file (solrconfig.xml by default)

solr.core.schemaName -- The name of the core's schema file (schema.xml by default) 

可以在 solrconfig.xml 和 schema.xml 文件中通过指定带有可选默认值的表达式来使用这些属性。

// Without a default value
${snapshooter}
// With a default value
${snapshooter:./solr/bin/snapshooter.sh}

上述表达式将计算 solr.xml 中为属性名称“solr.snapshooter”指定的值。如果 solr.xml 中未定义任何值,它将检查是否存在该名称的系统属性,否则将使用指定的默认值。如果没有指定默认值,则会抛出运行时异常,并且核心可能无法启动。

相关内容