【问题标题】:Is it possible to create a base Solr schema?是否可以创建基本 Solr 模式?
【发布时间】:2016-07-25 15:20:24
【问题描述】:

我们有许多几乎完全相同的 Solr schema.xml 文件。如果我们可以提取公共部分并将它们放在一个基本模式中,然后我们在自定义模式文件中覆盖它,那就太好了。

查看我的架构文件,每个文件大约有 1/7 是自定义的,其余的是可以提取和集中的样板文件。

有没有办法做到这一点?

【问题讨论】:

    标签: xml inheritance solr schema


    【解决方案1】:

    TYPO3 使用通用 XML x:include 来实现。这是 GitHub 上的 the English example,他们还有很多。

    这可能不适用于托管模式,因为它会在第一次读取时重新生成完整模式。

    或者,正如 Binoy 所写,从公共源引导模式,然后使用 Schema API 应用更改。

    【讨论】:

      【解决方案2】:

      如果您希望这样做是 solr 本身,那么我认为这是不可能的。

      或者,您可以做的是在每次创建新的核心/集合时使用一份基本架构副本,然后使用架构 API 进行所需的任何更改。但是,这至少需要您编写一些代码或进行一些 api 调用。

      【讨论】:

      • 所以我猜这种方法意味着我们有一个基础,然后在 Python 调用中对 Schema API 的自定义进行编码。我们只以编程方式创建内核,所以这可以工作。我不喜欢 schema.xml 文件与 Python 代码的分离程度,但它可能是最好/唯一的解决方案。
      • 想到的另一个想法是使用动态字段。您可以将基本模式作为明确定义的字段,将其他不同的字段作为动态字段的主机。这需要您对可能出现的所有可能字段具有高级知识,以便您可以相应地创建动态字段,但这也意味着您只需要 1 个架构。
      • 不错的主意,但我们将字段名称公开给用户,因此他们可以进行org:foo 之类的查询。如果我们使用动态字段,那么我们的字段名称必须更改。
      • 我不知道这对你的用例有多好,但你可以肯定不是包罗万象,而是从你公开给用户的动态字段中复制一些字段出于查询目的,可能基于特定的字段分组,具体取决于它们的用途。
      猜你喜欢
      • 2018-03-17
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 2011-04-16
      • 2020-05-22
      • 1970-01-01
      • 1970-01-01
      • 2011-09-25
      相关资源
      最近更新 更多