2012-03-12 76 views
1

當我使用solrj添加文檔solr時,內容是否被編碼?solrj是否對內容進行編碼?

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的調試器看到。

我也添加了UTF-8屬性到tomcat http://wiki.apache.org/solr/SolrTomcat#URI_Charset_Config但沒有任何效果。

我必須添加編碼的內容還是爲我做solrj?

回答

2

問題是通過GET的查詢可能會失敗並顯示國際字符。通常這應該由Tomcat-Param解決,但在我的情況下不是。

其中工程八方通解決方案是把它作爲POST

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