solr 使用 ContentStreamUpdateRequest 中文乱码解决办法
updateRequest = new ContentStreamUpdateRequest("/update/extract"); updateRequest.addFile(file); updateRequest.setParam("literal.id", "".concat(doc.getId()).concat("-").concat(file.getName())); updateRequest.setParam("literal.file_path", URLEncoder.encode(file.getAbsolutePath(), "UTF-8") ); updateRequest.setParam("literal.file_name", URLEncoder.encode(file.getName(), "UTF-8")); updateRequest.setParam("literal.form_content", URLEncoder.encode(doc.getContent(), "UTF-8")); updateRequest.setParam("literal.title", URLEncoder.encode(doc.getTitle(), "UTF-8"));?
?
步骤二:将 apache-solr-core-3.6.0.jar? 内 org.apache.solr.servlet.SolrRequestParsers.java 中的内部类MultipartRequestParser 的
????????????? parseParamsAndFillStreams方法内的以下代码
?
if (item.isFormField()) { MultiMapSolrParams.addParam( item.getFieldName(), item.getString(), params.getMap() ); }?
?
替换换为
if (item.isFormField()) { MultiMapSolrParams.addParam( item.getFieldName(), URLDecoder.decode(item.getString(), "utf-8"), params.getMap() ); }?
?
Ok 到此已经解决了乱码问题。。。