添加字段 'field_name'-'field_value' 时出错 msg=对于输入字符串:\"field_Value\"

Ric*_*ard 5 solr

我们偶尔会努力将某些文件导入 Solr。似乎某些文档具有奇怪的元数据(值),不确定它是否来自古怪的文字处理器或其他东西。请参阅此处的两个示例:

Type:        Solarium\Exception\HttpException
Message:     Solr HTTP error: OK (400)
{"responseHeader":{"status":400,"QTime":49},"error":{"metadata":["error-class","org.apache.solr.common.SolrException","root-error-class","java.lang.NumberFormatException"],"msg":"ERROR: [doc=3932487729] Error adding field 'brightness_value'='6.18' msg=For input string: \"6.18\"","code":400}}
Run Code Online (Sandbox Code Playgroud)

Type:        Solarium\Exception\HttpException
Severity: error --> Exception: Solr HTTP error: OK (400)
{"responseHeader":{"status":400,"QTime":72},"error":{"metadata":["error-class","org.apache.solr.common.SolrException","root-error-class","java.lang.NumberFormatException"],"msg":"ERROR: [doc=16996] Error adding field 'version'='5.3.1' msg=For input string: \"5.3.1\"","code":400}}
Run Code Online (Sandbox Code Playgroud)

我们如何预防这些问题?我们无法控制文件,因此需要在服务器上进行修复。

Mat*_*ndh 2

在模式中显式定义字段类型,而不是依赖 Solr 为您创建字段类型 - 包含该字段的第一个文档将使 Solr 猜测该字段的类型,如果后面的文档与预期的不匹配格式,你会得到这样的错误。

在生产或实际应用程序中使用集合时,始终为集合定义架构 - 无架构模式对于原型设计和实验来说确实很简洁,但在实际应用程序中,您希望类型得到良好定义。