是否可以 "import" Solr 中另一个模式文件中的模式文件?
Is it possible to "import" a schema file in another schema file in Solr?
我有一个模式文件,该文件已经变得非常大,因为它具有针对多种语言的预定义字段。并不是所有的字段都会被所有的消费者使用(事实上,大多数只会使用 1-2 种语言),但我们需要为客户提供合理的默认值。使用它并不是真的 糟糕 ,但如果我可以按语言划分模式,它可能更容易管理。
是否可以让架构文件导入另一个文件?像,
<schema name="catalog-config" version="1.6">
...
<import file="./lang/spanish.xml"/>
...
</schema>
使用XInclude
.
您的 schema.xml 可能已经包含 xi:include
代码块(未注释),例如
<fields>
<!-- regular/dynamic fields definitions... -->
</fields>
<xi:include href="schema_fields_spanish.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:fallback></xi:fallback>
</xi:include>
您可以在用于 TYPO3 搜索的 Solr 配置中看到这方面的示例(例如 for Korean)。
但是请注意,最近的 Solr 版本使用托管模式,它会在任何更改时被重写。这意味着所有 XIncludes 都将被引入并重新排列。如果您对此不满意并且更喜欢对架构文件进行版本控制,则可以在 solrconfig.xml 中使用 Schema Factory configuration.
禁用它
我有一个模式文件,该文件已经变得非常大,因为它具有针对多种语言的预定义字段。并不是所有的字段都会被所有的消费者使用(事实上,大多数只会使用 1-2 种语言),但我们需要为客户提供合理的默认值。使用它并不是真的 糟糕 ,但如果我可以按语言划分模式,它可能更容易管理。
是否可以让架构文件导入另一个文件?像,
<schema name="catalog-config" version="1.6">
...
<import file="./lang/spanish.xml"/>
...
</schema>
使用XInclude
.
您的 schema.xml 可能已经包含 xi:include
代码块(未注释),例如
<fields>
<!-- regular/dynamic fields definitions... -->
</fields>
<xi:include href="schema_fields_spanish.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:fallback></xi:fallback>
</xi:include>
您可以在用于 TYPO3 搜索的 Solr 配置中看到这方面的示例(例如 for Korean)。
但是请注意,最近的 Solr 版本使用托管模式,它会在任何更改时被重写。这意味着所有 XIncludes 都将被引入并重新排列。如果您对此不满意并且更喜欢对架构文件进行版本控制,则可以在 solrconfig.xml 中使用 Schema Factory configuration.
禁用它