我的应用程序在本地使用Sunspot Solr,支持unicode没有任何问题。然而,在生产中,有了Heroku和Websolrunicode查询返回零个结果。我已与Websolr确认支持我可以使用unicode直接查询他们的Solr系统而且效果很好。然而,当我从我的生产应用程序中查询时,它们在日志中看到了这样的内容:q=
因此,它似乎与Websolr无关。我还试着运行本地应用程序处于生产模式(指向Websolr),一旦我这样做否则,查询将再次不返回结果!
我想知道是否有人遇到过类似的问题,我应该去哪里正在寻找答案?我尝试将solr生产日志级别设置为INFO或更多信息,查看发送给Solr的内容,但出于某种原因这也没有显示在服务器日志中。
感谢
当Sunspot切换为对其请求使用HTTPPOST时,不幸的是,它(及其依赖项RSolr)没有为其内容类型标头指定字符集。这导致Tomcat根据servlet规范默认为ISO-8859-1,从而导致UTF-8字符的解码不正确。
RSolr的最新版本1.0.7通过使用UTF-8字符集指定正确的内容类型标头解决了这一问题。因此,看到此错误的Sunspot用户应该确保他们的RSolr-gem依赖项已更新到1.0.7或更高版本。
我不确定,但可能是因为某种原因,当你提出请求时,WebSolr可能没有发送要使用的字符集,所以你的应用程序服务器(我不确定是JBOSS还是Tomcat)会认为它应该使用默认的字符集(可以是ISO-8859-1)。我认为这应该是产品的一个缺陷。