当我在Solr中添加任何字段然后对一些数据建立索引时,Solr会为此字段创建一个副本字段。
例如,我添加了一个名为app_id
的字段,并在建立索引后在app_id
和另一个名为app_id_str
的字段中都有数据。
有什么办法可以防止创建这些副本字段?
答案 0 :(得分:2)
Schema.xml
在 schema.xml 中的通配符中以通配符搜索copyField
定义。
copyField命令可以在目标中使用通配符(*) 仅当源参数也包含一个参数时,才可以使用该参数。 copyField 使用源字段中匹配的glob作为目标字段名称 将源内容复制到其中。
您需要评论以下内容:
<copyField source="*" dest="*_str"/>
您可能还具有一些类似以下内容的dynamicField
定义,这些定义会创建任何复制的字段(否则,您可能还记得明确定义了诸如app_id_str
这样的字段):
<dynamicField name="*_str" type="string"/>
SchemaLess模式
在内部,模式API和无模式更新处理器 使用相同的托管模式功能。
如果在“无缝模式”下使用Solr,则可以通过使用Schema API来执行相同的操作:
或按照Kusal所述,在 solrconfig.xml 中重新配置专用更新处理器。
请参阅this section下标题为“ 您仍然可以明确表示”的段落。
答案 1 :(得分:2)