Solr:忽略或修改类型不正确或其他类型错误的字段

时间:2016-12-19 23:37:18

标签: solr

我正在使用post工具将数十万个文档读入Solr实例。我发现在这个语料库中,由于某种类型的模式类型错误导致大约150个文档失败,例如我将“已创建”字段定义为日期字段,但少数文档在该字段中的日期值无效。

不是改变架构并重新索引所有文档(一个大约需要20个小时的过程),为了我的目的,只需通过忽略“created”字段来读取失败到索引中的文档。

如何配置Solr来接收它收到的文件,只需从中删除created字段?更好的是,我如何告诉Solr简单地删除未通过模式验证的任何字段?

1 个答案:

答案 0 :(得分:0)

有两种可能性:

1)忽略字段

要忽略相关字段,请使用fmap parameter将其映射到忽略的字段。例如:

bin/post -c mycollection -params \
    "fmap.created=ignored_created" files...

利用模式中ignored_*类型的动态ignored字段,例如:

<dynamicField name="ignored_*" type="ignored" multiValued="true"/>

2)更改格式

如果信息有效但格式不正确,请使用更新处理器解析格式或修改输入。例如,要以不寻常的格式解析日期,请将格式添加到solr.ParseDateFieldUpdateProcessorFactory中的solrconfig.xml

要修改输入,请使用RegexReplaceProcessorFactory