阻止Solr创建默认复制字段

问题描述 投票:2回答:2

当我在Solr中添加任何字段然后索引一些数据时,Solr为该字段创建一个复制字段。

例如,我添加了一个名为app_id的字段,在索引之后,app_id和另一个名为app_id_str的字段都有数据。

有没有办法阻止创建这些复制字段?

solr solrcloud
2个回答
2
投票

我假设你正在使用一个相当新的Solr版本。 (我没有足够的声誉来评论该问题)您可以阻止Solr在索引时间内自动创建复制字段。您只需配置“add-schema-fields”更新处理器即可动态创建复制字段。这是怎么回事

  1. 打开要禁用的核心的solrconfig.xml文件,自动添加复制字段。
  2. 注释掉配置以禁用在文本字段(或配置为生成复制字段的任何类型的字段)上创建复制字段。

enter image description here

  1. 保存并重新启动Solr实例。
  2. 索引文件。

2
投票

Schema.xml的

在schema.xml中以glob模式使用通配符搜索copyField定义。

仅当source参数包含一个时,copyField命令才能在dest参数中使用通配符(*)字符。 copyField使用源字段中的匹配glob作为源内容复制到的dest字段名称。

你需要评论任何看起来像这样的东西:

<copyField source="*" dest="*_str"/>

您可能还有一些dynamicField定义,如下所示,可以创建任何复制的字段(否则您可能会记得明确定义了像app_id_str这样的字段):

<dynamicField name="*_str" type="string"/>

SchemaLess模式

在内部,Schema API和Schemaless Update Processor都使用相同的Managed Schema功能。

如果您在“无模式模式”中使用Solr,则可以使用Schema API执行相同操作:

或者按照Kusal所述,在solrconfig.xml中重新配置专用更新处理器。

请参阅this section下面标题为“你仍然可以明确”的段落。

© www.soinside.com 2019 - 2024. All rights reserved.