gpt4 book ai didi

solr - 如何在 Solr 4.4+ 中的核心之间共享架构和配置?

转载 作者:行者123 更新时间:2023-12-01 05:18:52 26 4
gpt4 key购买 nike

我想从旧的 solr.xml 格式迁移到 4.4 中的核心自动发现,但是像以前一样在核心之间共享配置(solrconfig.xml、schema.xml 和依赖文件)时遇到问题。

我的旧 solr.xml 是这样的:

<?xml version="1.0" encoding="UTF-8" ?>
<solr persistent="true">
<cores defaultCoreName="core1" adminPath="/admin/cores">
<core instanceDir="."name="core1" dataDir="core/core1"/>
<core instanceDir="."name="core2" dataDir="core/core2"/>
...
</cores>
</solr>

目录结构:
solr.xml
conf
schema.xml
solrconfig.xml
...
core
core1
core2
...

一切都以这种方式完美运行,整个配置在内核之间共享。它正在工作,因为所有内核的实例目录都相同,并且 conf 目录在它下面。

使用 4.4 中的核心自动发现,不可能为所有核心拥有相同的实例目录。虽然,我找到了一个有效的解决方案:

目录结构:
solr.xml
common
conf
schema.xml
solrconfig.xml
...
core
core1
core.properties
data
core2
core.properties
data
...

solr.xml:
<solr>
<str name="sharedLib">common</str>
</solr>

核心属性:
name=core1

它之所以有效,是因为 conf 目录位于类路径中,这要归功于 shareLib 指令。但这并不完全令人满意,因为我无法在 admin webapp 中显示配置文件,我得到以下异常:
java.lang.NullPointerException
at org.apache.solr.handler.admin.ShowFileRequestHandler.showFromFileSystem(ShowFileRequestHandler.java:210)
at org.apache.solr.handler.admin.ShowFileRequestHandler.handleRequestBody(ShowFileRequestHandler.java:122)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904)

有没有更好的方法在 4.4 中的所有内核之间共享配置?

最佳答案

我们有同样的问题。我们试图在 core.properties 文件夹中指定一个相对路径,但这不起作用。

我们最终做的是在 SOLRHome 文件夹中创建一个 conf 文件夹,然后在 core/conf 目录中创建符号链接(symbolic link)。

以下是我为创建符号链接(symbolic link)而执行的命令:

ln -s ../../conf/solrconfig.xml solrconfig.xml
ln -s ../../conf/schema.xml schema.xml

关于solr - 如何在 Solr 4.4+ 中的核心之间共享架构和配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17990367/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com