是否可以在Solr的另一个架构文件中“导入”架构文件?

时间:2019-09-16 15:45:39

标签: solr

我有一个架构文件,它已经变得很大,因为它具有针对多种语言的预定义字段。并非所有使用者都会使用所有字段(实际上,大多数字段只会使用1-2种语言),但是我们需要为客户设置合理的默认值。确实不是糟糕,但是如果我可以按语言划分架构,则管理起来会容易得多。

是否可以将模式文件导入另一个文件?像

<schema name="catalog-config" version="1.6">
   ...
   <import file="./lang/spanish.xml"/>
   ...
</schema>

1 个答案:

答案 0 :(得分:3)

使用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将被插入并重新排列。如果您对此不满意,并且希望对架构文件进行版本控制,则可以使用Schema Factory configuration在solrconfig.xml中禁用它。