solr运行sid.addField(key.getKey(), map.get(key));报上述异常,网上找了下大多是因为字段的名称不匹配,可是我看了一下字段名称是一样的
后来debug时候map.get(key)总是为空,而且第一次addField()的时候为她的主键字段,所以报上没的异常,并且key值是sql查询列的别名
SolrInputDocument sid = new SolrInputDocument();
for (Map.Entry<String, Object> key : map.entrySet()) {
sid.addField(key.getKey(), map.get(key));}
return sid;
改成 sid.addField(key.getKey(), key.getValue());没问题啦
或者缺少对应字段
或者是修改了solr配置文件schema.xml后,servlet服务器没有重启