SO!這是我的第一個問題,所以要種;)solrconfig.xml中SolrJ更改後的異常
我一直使用Solr和我最近發現它有
幾乎
沒有安全性可言.. 所以在瀏覽器中,你可以寫 http://HOST:PORT/solr/update?stream.body=<delete><query>*:*</query></delete>&commit=true
並輕而易舉地刪除我的索引。
閱讀Solr wiki我編輯了我的solrconfig.xml文件,添加了自己的RequestHandler以進行更新。
<requestHandler name="/theupdate"
class="solr.XmlUpdateRequestHandler">
</requestHandler>
默認的..instead ..
<requestHandler name="/update"
class="solr.XmlUpdateRequestHandler">
</requestHandler>
,現在我將文檔集合到服務器時獲得此異常(前提交)。
org.apache.solr.client.solrj.SolrServerException: Server at http://HOST:PORT/solr returned non ok status:400, message:Missing solr core name in path
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:328)
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:211)
at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105)
at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:69)
at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:54)
這是我的索引代碼:
SolrServer server = new HttpSolrServer("http://HOST:PORT/solr");
Collection<SolrInputDocument> colection = new ArrayList<SolrInputDocument>();
SolrInputDocument solrDoc = new SolrInputDocument();
OracleCachedRowSet rsX = getDataFromDB(); // not actual line
while (rsX.next()) {
solrDoc.addField("id", rsX.getLong(1), 1.0f);
solrDoc.addField("name", rsX.getString(2), 1.0f);
colection.add(solrDoc);
}
server.add(colection); //<-- the exception is thrown here!
server.commit();
colection.clear();
注:我讀了一些關於通過防火牆和/或基本身份驗證在servlet容器我工作太保護Solr的.. 。
在此先感謝!
這是快!我認爲,如果我無法解決這個問題,我將不得不採取防火牆/認證aproach ..謝謝! – Nefreo