当我使用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?
答案 0 :(得分:2)
问题是GET查询可能会失败并带有国际字符。通常这应该由Tomcat-Param解决,但在我的情况下不是。
始终有效的解决方案是将其作为POST发送
QueryResponse rsp = locationSearchServer.query(solrQuery, METHOD.POST);