Tomcat SOLR 多核设置

发布于 2024-08-31 00:36:47 字数 578 浏览 3 评论 0原文

我花了整个上午尝试在 Apache Tomcat 服务器下运行的 SOLR 安装上设置多个核心,但没有成功。我的 solr.xml 如下所示:

<solr persistent="false" sharedLib="lib">
  <cores adminPath="/admin/cores">
    <core name="core0" instanceDir="/multicore/core0">   
        <property name="dataDir" value="/multicore/core0/data" />
    </core>
    <core name="core1" instanceDir="/multicore/core1">
        <property name="dataDir" value="/multicore/core1/data" />
    </core>
  </cores>
</solr>

正确的目录结构是什么?我需要更改 solrconfig.xml 中的某些内容吗?

I have spend all morning trying to set up multiple cores on a SOLR installation that runs under Apache Tomcat server without success. My solr.xml looks like this:

<solr persistent="false" sharedLib="lib">
  <cores adminPath="/admin/cores">
    <core name="core0" instanceDir="/multicore/core0">   
        <property name="dataDir" value="/multicore/core0/data" />
    </core>
    <core name="core1" instanceDir="/multicore/core1">
        <property name="dataDir" value="/multicore/core1/data" />
    </core>
  </cores>
</solr>

What is the correct directory structure? Do I need to do change something in the solrconfig.xml?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

メ斷腸人バ 2024-09-07 00:36:48

这有点晚了,但我刚刚发表了一篇博客文章 Tomcat 上的多核 SOLR 实例的说明,内容如下:

  1. 已下载并安装 32 位/64 位 Windows 服务
    Tomcat 安装程序
  2. 在服务器上安装了 Tomcat(没有
    这里有特别说明——只需运行安装并安装到任何地方
  3. 通过访问 http://localhost:8080 验证 Tomcat 的安装
  4. 编辑 Tomcat
    conf/server.xml 并将 URIEncoding="UTF-8" 添加到
    <连接器>元素如下所示
  5. 下载
    SOLR 来自此处找到的镜像之一(下载了 apache-solr-1.4.1.zip
    包)并解压包
  6. 创建 SOLR 所在目录
    将由(在我的例子中我使用 e:\inetpub\solr)托管
  7. 复制
    example\solr 目录的内容添加到您的
    SOLR 主机目录(在我的例子中为 e:\inetpub\solr)
  8. 创建
    您的每个核心的 SOLR 主机目录下的目录
    希望创建(我为每个我想要的核心创建了十几个文件夹
    在 e:\inetpub\solr 目录中创建。目录
    包括 en-US、en-CA、en-GB 等)
  9. 复制
    solr.xml 文件来自
    example\multicore 目录并将其粘贴到您的
    SOLR 主机目录(在我的示例中为 e:\inetpub\solr)
  10. 编辑
    solr.xml 文件包含每个的信息
    您创建的核心的数量(如果您在主机下创建了一个文件夹
    名为 en-US 的核心,然后在
    <核心> solr.xml 文件中的元素:
    )
  11. 停止 Tomcat 服务
  12. 从以下位置复制 *solr*.war 文件
    解压后的SOLR包中的dist目录
    到您的 Tomcat webapps 文件夹
  13. 重命名
    *solr*.war 文件转换为 solr.war
  14. 在 Windows 任务栏右侧的通知区域中,右键单击
    Apache Tomcat 7 图标并选择
    配置
  15. 单击Java
    选项卡并将以下内容添加到 Java 选项 文本中
    框:-Dsolr.solr.home=e:\inetpub\solr(更改
    e:\inetpub\solr 到托管 SOLR 的位置)
  16. 单击
    对话框中确定,然后启动 Tomcat
    服务
  17. 打开conf\solrconfig.xml 文件
    在您创建的每个核心下并更改
    dataDir 元素指向特定的
    目录。如果此步骤未完成,您的所有核心都会
    为他们的数据使用相同的数据存储。
  18. 停止并
    重新启动 Tomcat 服务
  19. 测试您的核心是否正在运行
    通过从 Web 浏览器运行查询 http://localhost:8080/solr/en-US/select?q=*:* (replace
    “en-US”与您为核心之一命名的任何名称)

This is kind of late in the game, but I just put up a blog post with instructions for a multicore SOLR instance on Tomcat which reads:

  1. Downloaded and installed the 32-bit/64-bit Windows Service
    Installer for Tomcat
  2. Installed Tomcat on the server (no
    special instructions here--just run the install and install wherever
    you wish)
  3. Verified the installation of Tomcat by going to http://localhost:8080
  4. Edit Tomcat's
    conf/server.xml and add URIEncoding="UTF-8" to the
    <Connector> element as shown here
  5. Download
    SOLR from one of the mirrors found here (downloaded the apache-solr-1.4.1.zip
    package) and unzip the package
  6. Create a directory where SOLR
    will be hosted from (in my case I used e:\inetpub\solr)
  7. Copy
    the contents of the example\solr directory to your
    SOLR host directory (in my case e:\inetpub\solr)
  8. Create
    directories under your SOLR host directory for each of the cores you
    wish to create (I created a dozen or so folders for each core I wanted
    to create in the e:\inetpub\solr directory.  The directories
    included en-US, en-CA, en-GB, etc.)
  9. Copy the
    solr.xml file from the
    example\multicore directory and paste it into your
    SOLR host directory (e:\inetpub\solr for my example)
  10. Edit
    the solr.xml file to include the information for each
    of the cores you created (if you created a folder under your host for
    a core named en-US, then add the following under the
    <cores> element in the solr.xml file:
    <core name="en-US" instanceDir="en-US" />)
  11. Stop the Tomcat Service
  12. Copy the *solr*.war file from
    the dist directory in the unzipped SOLR package
    to your Tomcat webapps folder
  13. Rename the
    *solr*.war file to solr.war
  14. In the notification area in the right-hand side of the Windows task bar, right-click on the
    Apache Tomcat 7 icon and select
    Configure
  15. Click the Java
    tab and add the following to the Java Options text
    box: -Dsolr.solr.home=e:\inetpub\solr (change
    e:\inetpub\solr to wherever your SOLR is being hosted)
  16. Click
    OK in the dialog and then start-up the Tomcat
    service
  17. Open the conf\solrconfig.xml files
    under each of the cores you created and change the
    dataDir element to point to a specific
    directory.  If this step is not completed, all of your cores will
    be using the same data store for their data.
  18. Stop and
    re-start the Tomcat Service
  19. Test that your cores are running
    by running a query from the web browser http://localhost:8080/solr/en-US/select?q=*:* (replace
    "en-US" with whatever you've named one of your cores)
鸠魁 2024-09-07 00:36:47

检查您的 instanceDir 值是否相对于 -Dsolr.solr.home。如果 -Dsolr.solr.home 是“多核”,那么您的 instanceDir 应该只是“core0”。

如果将数据文件夹放在instanceDir 中,则不必指定其路径:

<?xml version='1.0' encoding='UTF-8'?>
<solr persistent="true">
<cores adminPath="/admin/cores">
    <core name="core0" instanceDir="core0" />
    <core name="core1" instanceDir="core1" />
</cores>
</solr>

不必在solrconfig.xml 中设置任何内容。但如果您需要独立于核心位置配置处理程序,则可以使用变量 ${solr.core.instanceDir}。

更新

要使用 Tomcat 设置 solr.solr.home 变量,请在启动 Tomcat 之前使用 JAVA_OPTS 环境变量:

JAVA_OPTS="-Dsolr.solr.home=multicore"
export JAVA_OPTS
tomcat/bin/catalina.sh start

确保相对于工作目录正确设置“多核”。例如,如果 solr.solr.home='multicore',则必须从“multicore”所在的目录启动 Tomcat。

Check that your instanceDir values are relative to -Dsolr.solr.home. If -Dsolr.solr.home is 'multicore', then your instanceDir should be only "core0".

If you put your data folder inside your instanceDir, you should not have to specify its path:

<?xml version='1.0' encoding='UTF-8'?>
<solr persistent="true">
<cores adminPath="/admin/cores">
    <core name="core0" instanceDir="core0" />
    <core name="core1" instanceDir="core1" />
</cores>
</solr>

You should not have to set anything in solrconfig.xml. But if you need to configure an handler independantly of the core location, you can use the variable ${solr.core.instanceDir}.

UPDATE

To set the solr.solr.home variable with Tomcat, use the JAVA_OPTS environment variable before starting Tomcat:

JAVA_OPTS="-Dsolr.solr.home=multicore"
export JAVA_OPTS
tomcat/bin/catalina.sh start

Make sure that "multicore" is correctly set relative to the working directory. Per example, if solr.solr.home='multicore', you have to launch Tomcat from the directory where "multicore" is located.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文