当我在Solr中添加任何字段然后索引一些数据时,Solr为该字段创建一个复制字段。
例如,我添加了一个名为app_id
的字段,在索引之后,app_id
和另一个名为app_id_str
的字段都有数据。
有没有办法阻止创建这些复制字段?
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下面标题为“你仍然可以明确”的段落。