Java 如何在SOLR中为不同的核心提供不同的模式文件?

Java 如何在SOLR中为不同的核心提供不同的模式文件?,java,lucene,solr,Java,Lucene,Solr,我有一个具有三个不同内核的SOLR实例。 我创建了一个solr.xml配置文件,它为每个核心指定了模式文件,但无法识别。系统仍然尝试加载默认schema.xml(我删除了它,所以失败了) 出于调试目的,我在solr.xml中只留下了一段代码,以下是我的条目: <solr persistent="false"> <cores adminPath="/admin/cores" defaultCoreName="content" shareSchema="false">

我有一个具有三个不同内核的SOLR实例。
我创建了一个solr.xml配置文件,它为每个核心指定了模式文件,但无法识别。系统仍然尝试加载默认schema.xml(我删除了它,所以失败了)

出于调试目的,我在solr.xml中只留下了一段代码,以下是我的条目:

<solr persistent="false">
  <cores adminPath="/admin/cores" defaultCoreName="content" shareSchema="false">
        <core name="content" instanceDir=".">
                <property name="schema" value="conf/contentSchema.xml" />
        </core>
  </cores>
</solr>

文件`contentSchema.xml存在于[SOLR_HOME]/conf下。我只对文件名和conf/filename进行了修改

甚至没有达到那个阶段,错误是:

严重:java.lang.RuntimeException:在类路径或中找不到资源“schema.xml” /usr/local/solr//conf/,cwd=/usr/local/solr


如果您下载了源代码,请检查多核文件夹,该文件夹演示了多核配置,您可以参考和测试该配置。 或参考@

更多,将是一个很好的起点

多核不需要位于solr主文件夹下,可以使用指定 -Dsolr.solr.home=多核

solr.xml与核心文件夹位于同一文件夹中。 实例目录指向核心文件夹 schemaName——核心模式文件的名称(默认为schema.xml) e、 g


仔细阅读文档,“schema”是核心元素的属性,而不是属性。因此,假设您将“myschema.xml”放在core的conf文件夹下:

<core ....>
   <property name="schema" value="myschema.xml" />
</core>

将导致在类路径中找不到schema.xml或…./conf错误

鉴于

<core .... schema='myschema.xml' />

我们会成功的


注:我想,Lucid Imagination的文档可能已经过时了,或者它在谈论Solr未来版本的一个功能。

这就是我最终使用的,并且正在发挥作用

<cores adminPath="/admin/cores" defaultCoreName="content">
    <core name="content" instanceDir="./content" />
    <core name="users" instanceDir="./users" />
    <core name="users_organizations" instanceDir="./users_organizations" />
</cores>


在每一个目录下,我都有一个
conf
目录,其中有自己的conf文件,它们反过来也指向右侧的
data
文件夹(在
solrconfig.xml
文件中)

我所做的一切都是根据这个文档进行的,为了再次确认,我无法跳过schema.xml名称。哦..好吧,我将为每个核心使用不同的目录-谢谢。
<cores adminPath="/admin/cores" defaultCoreName="content">
    <core name="content" instanceDir="./content" />
    <core name="users" instanceDir="./users" />
    <core name="users_organizations" instanceDir="./users_organizations" />
</cores>