从Eclipse访问Solr时出现404错误

时间:2013-01-07 16:30:22

标签: solr

我有一个solr实例正在运行,并且能够通过浏览器访问它并使用Admin来运行查询。但是,当我尝试通过Eclipse中的Java代码访问它时,我收到以下错误:

Exception in thread "main" org.apache.solr.common.SolrException: Server at   http://localhost:8983/solr returned non ok status:404, message:Not Found
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:372)
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:181)
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:90)
at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)
at testClass.main(testClass.java:18)

以下是我正在运行的代码:

public static void main(String[] args) throws MalformedURLException, SolrServerException {
    SolrServer server = new HttpSolrServer("http://localhost:8983/solr/");
    ModifiableSolrParams params = new ModifiableSolrParams();
    params.set("myParam", "myValue");
    QueryResponse response = server.query(params);
}

2 个答案:

答案 0 :(得分:1)

事实证明我有两个错误:

1)我的设置实际上有一个嵌套的solr目录,所以我需要添加另一个“solr”级别。

2)我错误地设置了params变量。发送的第一个参数应为“q”,第二个参数为“name:value”对。

更新示例,包括一次传递多个参数:

public static void main(String[] args) throws MalformedURLException, SolrServerException {
    SolrServer server = new HttpSolrServer("http://localhost:8983/solr/solr/");
    ModifiableSolrParams params = new ModifiableSolrParams();
    params.set("q", "param1:value1 AND param2:value2");
    QueryResponse response = server.query(params);
    System.out.println("response = " + response);
}

答案 1 :(得分:0)

不应该是: -

 SolrServer server = new HttpSolrServer("http://localhost:8983/solr");

请参阅以下链接中的接受答案: -

Querying Solr via Solrj: Basics