读书人

solr 使用 ContentStreamUpdateReques

发布时间: 2012-09-20 09:36:51 作者: rapoo

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 到此已经解决了乱码问题。。。

读书人网 >PowerDesigner

热点推荐