我们偶尔会努力将某些文件导入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}}
和
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}}
我们如何防止这些问题?我们无法控制文档,因此需要在服务器上修复它。
答案 0 :(得分:1)
在模式中显式定义字段类型,而不是依赖Solr为您创建字段类型 - 包含该字段的第一个文档将使Solr猜测字段的类型,如果后面的文档与同样的,预期的格式,你会得到这样的错误。
在生产或实际应用程序中使用集合时,始终定义集合的模式 - 无模式模式对于原型设计和实验非常简洁,但在实际应用程序中,您希望明确定义类型。