Solr为正弦斜线返回400字符串字段

时间:2015-05-13 20:49:50

标签: solr

我正在尝试将JSON文档索引到Solr中,并且对于其中一个在字段中带有正斜杠的文档,Solr失败并返回400.

有问题的文件:

[
    {"key": "100", "path": "0"},
    **{"key": "200", "path": "0/6000"}**
]

错误:

SimplePostTool: WARNING: Solr returned an error #400 (Bad Request) for url: http://localhost:8983/solr/ss/update
SimplePostTool: WARNING: Response: {"responseHeader":{"status":400,"QTime":79},"error":{"msg":"ERROR: [doc=f92efb19-2786-49fd-a8ee-6d1e12fb0cb7] Error adding field 'path'='0/6000' msg=For input string: \"0/6000\"","code":400}}
SimplePostTool: WARNING: IOException while reading response: java.io.IOException: Server returned HTTP response code: 400 for URL: http://localhost:8983/solr/ss/update
1 files indexed.

我也尝试在该字符串中转义“/”,但没有运气

删除正斜杠工作正常。非常奇怪

1 个答案:

答案 0 :(得分:2)

问题在于Solr 5.从版本5开始,solr默认管理架构,不从schema.xml读取架构。当索引开始并且我的文档中的“path”字段是一个int时,solr将它分析为int,但是当它来到文档“path”=“0/6000”时它会抛出NumberFormatException并失败。

为此,您必须在solrConfig.xml中进行一些更改以使用schema.xml或坚持使用solr来管理您的架构,Solr 5提供了一个API来更新Solr使用Schema API生成的架构(我最终使用了) 。