访问 solr admin 时出现 HTTP ERROR 404
HTTP ERROR 404 while accessing solr admin
我正在使用 solr-6.5.1
。我能够安装 Solr,创建一个集合,使用我的应用程序索引文件,还可以从 Solr 中搜索数据。我正在使用以下 URL 访问 Solr:http://localhost:8983/solr/swcm
直到今天,一切对我来说都运行良好。现在,当我尝试访问上面的 URL 时,它会出现以下错误:
HTTP ERROR 404
Problem accessing /solr/swcm. Reason:
Not Found
但如果我使用以下 URL: http://localhost:8983/solr/#/swcm
我可以访问 Solr 管理员。但是这个 url 的问题是当我尝试使用我的 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();
突然间不知道哪里出了问题
出现此问题的一个原因可能是您更改了核心名称后还没有更新。
请参阅 enter link description here
另外你能告诉我当你访问/solr/swcm/select时你得到了什么吗?q=*
问题是 #
进入你的基地 url http://localhost:8983/solr/#/swcm
.
尝试删除误导性字符:
solrClient = new HttpSolrClient.Builder("http://localhost:8983/solr/swcm").build();
我还假设 swcm
是您的 core/collection 的名字。
但是您不能直接在浏览器中使用 http://localhost:8983/solr/swcm
,因为这是所有请求的基础url。
例如,您可以尝试使用 http://localhost:8983/solr/swcm/select?q=*:*&rows=10
,其中 return 是 swcm
集合中的前 10 个文档。
为了更好地理解 Solr 是如何组成的 url,我将把给定的示例分成主要部分:
- Solr Url:
http://localhost:8983/solr/
- Core or Collection 姓名:
swcm
- Solr Request handler:
select
- Solr Query:
q=*:*&rows=10
我们可以进一步将 Solr 查询分解成不同的部分:
- 中
q=*:*
是对return所有文档的常用查询,q
是查询参数,前者*
表示任意可用的字段名后者 *
代表任意值。 q
使用标准查询语法定义查询。此参数为必填项。
rows=10
仅表示 returns 10 个文档。
使用 solr base URL 并使用 query.set("collection", swcm);
将集合集合添加到 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();
我正在使用 solr-6.5.1
。我能够安装 Solr,创建一个集合,使用我的应用程序索引文件,还可以从 Solr 中搜索数据。我正在使用以下 URL 访问 Solr:http://localhost:8983/solr/swcm
直到今天,一切对我来说都运行良好。现在,当我尝试访问上面的 URL 时,它会出现以下错误:
HTTP ERROR 404
Problem accessing /solr/swcm. Reason:
Not Found
但如果我使用以下 URL: http://localhost:8983/solr/#/swcm
我可以访问 Solr 管理员。但是这个 url 的问题是当我尝试使用我的 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();
突然间不知道哪里出了问题
出现此问题的一个原因可能是您更改了核心名称后还没有更新。 请参阅 enter link description here
另外你能告诉我当你访问/solr/swcm/select时你得到了什么吗?q=*
问题是 #
进入你的基地 url http://localhost:8983/solr/#/swcm
.
尝试删除误导性字符:
solrClient = new HttpSolrClient.Builder("http://localhost:8983/solr/swcm").build();
我还假设 swcm
是您的 core/collection 的名字。
但是您不能直接在浏览器中使用 http://localhost:8983/solr/swcm
,因为这是所有请求的基础url。
例如,您可以尝试使用 http://localhost:8983/solr/swcm/select?q=*:*&rows=10
,其中 return 是 swcm
集合中的前 10 个文档。
为了更好地理解 Solr 是如何组成的 url,我将把给定的示例分成主要部分:
- Solr Url:
http://localhost:8983/solr/
- Core or Collection 姓名:
swcm
- Solr Request handler:
select
- Solr Query:
q=*:*&rows=10
我们可以进一步将 Solr 查询分解成不同的部分:
- 中
q=*:*
是对return所有文档的常用查询,q
是查询参数,前者*
表示任意可用的字段名后者*
代表任意值。q
使用标准查询语法定义查询。此参数为必填项。 rows=10
仅表示 returns 10 个文档。
使用 solr base URL 并使用 query.set("collection", swcm);
将集合集合添加到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();