How to: 调试 Solr 查询中文乱码问题
出现乱码或者查不到结果的排查方法:
1) Tomcat的server.xml需要保证:
如果没有设置URIEncoding="UTF-8",在提交查询的select的url会出现乱码,当然也就查不到了。
2) 添加索引的时候,xml数据文件需要包含utf-8声明,也就是:
然后使用Solr自带的post.jar或者curl来进行post索引:
java: java -Durl=http://localhost:8080/solr/update -Dcommit=yes -jar post.jar data.xml
curl:
curl -F "file=@data.xml"?http://localhost:8080/solr/update
curl -H "Content-Type: text/xml" -d ""?http://localhost:8080/solr/update
该步骤如果没有设置好,出错的表现是,查询的结果是乱码(可以设置查询关键词为id:[* TO *]确保显示出所有的结果).
3) 如果确保了如上的两个步骤都设置正确,但是使用http://localhost:8080/solr/admin/的查询表单(该表单支持utf-8没有问题)仍旧查不到结果,则问题可能出在分词器,可以尝试不同的分词器。)
?
参考:?http://blog.chenlb.com/2009/03/solr-query-params-explain.html