远程服务器上的Solr版本:solr-4.3.1
我试图在提交之前使用Solr Realtime Get来检索文档。我的代码
class Test3
{
static main(args)
{
def test = new Test3()
test.run()
}
private run()
{
String url = "DEV_SERVER:8983/solr/emr"
HttpSolrServer solr = new HttpSolrServer(url)
SolrQuery q = new SolrQuery();
q.setRequestHandler("/get");
q.set("rid", "6662c0f2.ee6a64fe.588j6qohe.9kd087u.0r00dg.6kr5pc2as0qu9m4ibr7f7");
QueryRequest req = new QueryRequest(q);
req.setResponseParser(new BinraryResponseParser());
println "=============================================="
rsp = req.process(solr); // ERROR
}
}
错误堆栈跟踪是:
Caught: org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: Expected mime type application/octet-stream but got
text/html. <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /solr/emr/get. Reason:
<pre> Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
</body>
</html>
org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: Expected mime type application/octet-stream but got text/htm
l. <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /solr/emr/get. Reason:
<pre> Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
</body>
</html>
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:459)
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:199)
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:91)
at org.apache.solr.client.solrj.request.QueryRequest$process.call(Unknown Source)
at com.att.songtao.test.Test3.run(Test3.groovy:48)
at com.att.songtao.test.Test3.this$2$run(Test3.groovy)
at com.att.songtao.test.Test3$this$2$run.call(Unknown Source)
at com.att.songtao.test.Test3.main(Test3.groovy:14)
我正在关注Realtime Get文档,并在updateLog
中将updateHandler
添加到solrconfig.xml
。我的localhost "localhost:8983/solr/collection1"
(版本solr-4.7.2
)Realtime Get工作正常,但在远程服务器上使用它会抛出上述错误。
任何人都可以提供见解?
谢谢,
答案 0 :(得分:1)
如果您指定的集合名称或Solr URL的配置文件不正确,则通常会出现此类错误。就我而言,我的属性文件缺少我正在搜索的集合的属性。
答案 1 :(得分:0)
你回来了404。看起来您没有启用ReplicationHandler。您可以将其添加到solrconfig.xml文件中,看看问题是否消失
<requestHandler name="/get" class="solr.RealTimeGetHandler">
<lst name="defaults">
<str name="omitHeader">true</str>
<str name="wt">json</str>
<str name="indent">true</str>
</lst>
</requestHandler>
答案 2 :(得分:0)
此错误可能是由于服务器连接造成的。您在系统中安装的服务器意味着Tomcat或Jetty等。
当您尝试在Solr上搜索索引时,基本上您的服务器配置不正确并拒绝您的连接。
验证您的服务器连接:
对于Tomcat执行给定语句 -
并且,如果服务器连接失败,请验证您使用的服务器。