2014-10-10 59 views
0

当试图罗马尼亚特殊字符(变音符号)存储到Solr模式字段,如:Solr的4.7.1和Tomcat 6不存储罗马尼亚字符

<field name="description" type="text_general" indexed="true" stored="true" required="false"/> 

罗马尼亚字符是:(A,I ,â,ş,ţ),它们在SOLR中被替换为?

要提到我已经完成了基本设置的所有要求,我使用Tomcat6运行它。

我的Solr的版本是4.7.1

回答

0

确保在正确的编码提交数据到Solr。

还要考虑为内容类型指定字符集。例如。内容类型:text/plain的; charset = UTF-8

另请尝试检查Solr端的数据解析方式。就在调试这个方法:

org.apache.solr.servlet.SolrRequestParsers.parseParamsAndFillStreams(HttpServletRequest, ArrayList<ContentStream>) 

见thise线:

final String cs = ContentStreamBase.getCharsetFromContentType(req.getContentType()); 
final Charset charset = (cs == null) ? IOUtils.CHARSET_UTF_8 : Charset.forName(cs); 

的Solr应该拿出UTF-8在这里。