查询 Solr 配置 API returns 内部服务器错误

Querying Solr Config API returns Internal Server Error

我正在尝试通过 Solr Config API 更新我的 solr 配置。我尝试首先使用以下端点查询配置:

http://localhost:8983/solr//配置

我得到的响应是 500 Internal Server Error,我在已部署的 solr 的日志中注意到以下异常:

Internal Server Error (500) - No RestManager found!
at org.apache.solr.rest.RestManager.getRestManager(RestManager.java:245)
at org.apache.solr.rest.SolrConfigRestApi.createInboundRoot(SolrConfigRestApi.java:67)
at org.restlet.Application.getInboundRoot(Application.java:270)
at org.restlet.engine.application.ApplicationHelper.start(ApplicationHelper.java:127)
at org.restlet.Application.start(Application.java:582)

核心是使用以下 post 创建的:

curl "http://localhost:8983/solr/admin/cores?action=CREATE&name=<keyspace.table>&generateResources=true&reindex=true"

此操作成功,但对配置 api 的 GET 失败。

url应该是:http://localhost:8983/solr/#/[ks.cf]/config

还有convenience/recommended方法可以避免你所有的curl命令。参见:

  • dsetool create_core
  • dsetoolget_core_config
  • dsetoolget_core_schema
  • dsetoolreload_core

在您的情况下,dsetool create_core、dsetool get_core_config、修改 solrconfig.xml 和后来的 dsetool reload_core 以及新的 solrconfig 应该可以满足您的需求。请参阅:Dsetool doc 了解使用详情

如果您需要一些关于如何使用 curl 执行此操作的示例,如果您仍然需要使用 curl,请参阅维基百科演示下的 shell 文件,1 -add-schema.sh 例如。仍然推荐使用 dsetool 命令。

如果您打算使用 Solr Config API,请注意这是 Solr 5 功能,在 DSE 中您会找到 4.10 版,因此该功能尚不可用。如果您想更改 solr 配置,则必须使用上面概述的 dsetool 命令重新加载新的 solrconfig。

了解您正在使用的确切版本将非常有用。

希望对您有所帮助。