![为 Ubuntu 12.04 和 Drupal 7 设置 apache solr 的多个核心](https://linux22.com/image/1078689/%E4%B8%BA%20Ubuntu%2012.04%20%E5%92%8C%20Drupal%207%20%E8%AE%BE%E7%BD%AE%20apache%20solr%20%E7%9A%84%E5%A4%9A%E4%B8%AA%E6%A0%B8%E5%BF%83.png)
我正在本地设置 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 中未定义任何值,它将检查是否存在该名称的系统属性,否则将使用指定的默认值。如果没有指定默认值,则会抛出运行时异常,并且核心可能无法启动。