solrj会对内容进行编码吗?

时间:2012-03-12 11:56:23

标签: tomcat encoding solrj

当我使用solrj添加文档solr时,内容会被编码吗?

CommonsHttpSolrServer server = new CommonsHttpSolrServer(
            "http://localhost:8080/solr/");
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", 1);
doc.addField("city", "Zürich");
server.add(doc);
server.commit();

因为当我使用以下代码搜索它时,我找不到它(其他城镇工作)。

SolrQuery solrQuery = new SolrQuery();
solrQuery.set(CommonParams.WT, "json");
solrQuery.setQuery("Zürich");

QueryResponse rsp = locationSearchServer.query(solrQuery);
return rsp.getBeans(City.class);

我可以在调试器中看到查询参数自动编码为UTF-8。

我还在tomcat http://wiki.apache.org/solr/SolrTomcat#URI_Charset_Config中添加了UTF-8属性,但没有效果。

我是否必须添加已编码的内容或为我做solrj?

1 个答案:

答案 0 :(得分:2)

问题是GET查询可能会失败并带有国际字符。通常这应该由Tomcat-Param解决,但在我的情况下不是。

始终有效的解决方案是将其作为POST发送

QueryResponse rsp = locationSearchServer.query(solrQuery, METHOD.POST);