我正在尝试将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.
我也尝试在该字符串中转义“/”,但没有运气
删除正斜杠工作正常。非常奇怪
答案 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生成的架构(我最终使用了) 。