访问solr admin时出现HTTP ERROR 404

时间:2017-06-10 06:09:32

标签: java solr lucene solrj

我正在使用solr-6.5.1。我能够使用我的应用程序安装Solr,创建集合,索引文件,还可以从Solr搜索数据。我使用以下URL访问Solr:http://localhost:8983/solr/swcm直到今天,一切正常。现在,当我尝试访问上述URL时,会出现以下错误:

HTTP ERROR 404

Problem accessing /solr/swcm. Reason:

    Not Found

但如果我使用以下网址:http://localhost:8983/solr/#/swcm我可以访问Solr管理员。但是这个网址的问题是当我尝试使用我的Spring MVC Java应用程序搜索集合中的数据时。我得到以下异常:

SEVERE: Servlet.service() for servlet [appServlet] in context with path [/smartwcm-admin] threw exception [Request processing failed; nested exception is org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://localhost:8983/solr/#/swcm: Expected mime type application/xml but got text/html. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

我使用的代码是:

solrClient = new HttpSolrClient.Builder("http://localhost:8983/solr/#/swcm").build();
solrClient.setParser(new XMLResponseParser());
SolrQuery query = new SolrQuery();
query.setQuery("pageTitle:"+searchKey+"*);
query.setFields("webContentDefinitionId");
query.setStart(start);   
query.setRows(count);
query.set("defType", "edismax");
QueryResponse response = null;;
response = solrClient.query(query);
SolrDocumentList docList = response.getResults();

我不确定突然之间出了什么问题。

3 个答案:

答案 0 :(得分:1)

问题在于#到您的基本网址http://localhost:8983/solr/#/swcm

尝试删除误导性字符:

solrClient = new HttpSolrClient.Builder("http://localhost:8983/solr/swcm").build();

我还假设swcm是您的核心/集合的名称。

但是您无法直接在浏览器中使用http://localhost:8983/solr/swcm,因为这是所有请求的基础。

例如,您可以尝试使用http://localhost:8983/solr/swcm/select?q=*:*&rows=10来返回swcm集合中的前10个文档。

为了更好地理解如何组成Solr网址,我将在主要部分中拆分给定的示例:

我们可以在不同的部分进一步分解Solr Query:

  • q=*:*中,这是用于返回所有文档的常见查询,q是查询参数,前*表示任何可用字段名称,后者{{1}代表任何价值。 *使用标准查询语法定义查询。此参数是必需的。
  • q仅表示返回10个文档。

答案 1 :(得分:0)

如果您更改了核心名称,则可能是您未更新此问题的一个原因。 请参阅enter link description here

你也可以告诉我你访问/ solr / swcm / select时得到了什么?q = *

答案 2 :(得分:0)

使用solr基本URL并使用query.set将集合集添加到swcm(&#34;集合&#34;,swcm);

例如:

solrClient = new HttpSolrClient.Builder("http://localhost:8983/solr").build();
SolrQuery query = new SolrQuery();
query.set("collection", swcm);
query.setQuery("pageTitle:"+searchKey+"*);
query.setFields("webContentDefinitionId");
query.setStart(start);   
query.setRows(count);
query.set("defType", "edismax");
QueryResponse response = null;;
response = solrClient.query(query);
SolrDocumentList docList = response.getResults();