Solr-将数据发布到核心时如何解决“错误添加字段... msg =用于输入字符串”

时间:2019-06-03 10:02:25

标签: solr

我是Solr的新手。 我使用SolrCloud创建了一个Solr(8.1.0)内核进行测试,并尝试将数据作为json文件发布。

当对象的浮点值类似于“ spalte412”:“ 35.5”或带有特殊字符时,它将在控制台中引发错误:

SimplePostTool: WARNING: Response: {
  "responseHeader":{
    "rf":2,
    "status":400,
    "QTime":223},
  "error":{
    "metadata":[
      "error-class","org.apache.solr.common.SolrException",
      "root-error-class","java.lang.NumberFormatException"],
    "msg":"ERROR: [doc=52] Error adding field 'spalte421'='156.6' msg=For input string: \"156.6\"",
    "code":400}}

我尝试通过在管理界面中添加字段来编辑核心架构,但没有成功。

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

您应该在schema.xml后面加上简短的描述,

  

“ root-error-class”,“ java.lang.NumberFormatException”

诸如solr war之类的声音在您尝试放入带有小数点(=For input string: \"156.6\"")的文档时无法理解该数字格式

听起来像您提供的格式和预期的格式不匹配。

答案 1 :(得分:0)

如果您不预先定义字段,则为该字段确定的字段类型将取决于提交的第一个包含该字段的文档。 Solr使用此字段类型来猜测字段的类型,在这种情况下,所猜测的字段类型与您在以后的文档中发送的格式不同。

无模式模式很适合进行原型制作,但是在进入生产环境时,应始终在前面添加正确类型的字段,这样当文档以不同顺序提交时,您不会突然感到意外(如上所述) (或其他文档)而不是开发时。

您可以define fields in schema.xmlthrough the SchemaAPI

答案 2 :(得分:0)

谢谢大家。

实际上,我通过删除管理用户界面中的字段并用来定义

curl -X POST -H'Content-type:application / json'--data-binary'{“ add-field”:{“ name”:“ name”,“ type”:“ text_general”,“ multiValued “:false,” stored“:true}}'http://localhost:8983/solr/films/schema