问题
如何在不重新启动 Solr 服务器的情况下添加 Solr 核心?
这可能吗?
我目前添加 Solr 核心的方式(和服务器重启)
根据此常见问题解答我执行以下操作:
- 复制现有的 Solr 核心
- 通过打开文件
core.properties
并编辑字段来重命名核心名称name
,例如name=my_core
- 重新启动 Solr Windows 服务
我首选的添加 Solr 核心的方式(没有服务器重启)
与上面相同,但在步骤 2 之后,我希望有某种方法让核心在 Solr Web 界面中可见,而不必重新启动整个服务器。
我迄今为止的研究
互联网上的资源表明这应该是可行的,但我还无法让它发挥作用。
论坛:无需重新启动/重新加载 Solr 即可加载核心
在本论坛他们只是说“是的,这是可能的”,并指出这一点Solr 文档页面名为 CoreAdmin。
Serverfault 问题:solr core 重新加载,无需重启 tomcat
这个 serverfault 问题solr core 重新加载,无需重启 tomcat有一个答案这表明#RELOAD 部分与上述 CoreAdmin Solr 文档相同,但我无法让 Solr 加载新的核心
http://localhost:8983/solr/admin/cores?action=RELOAD&core=my_core
也不
http://localhost:8983/solr/admin/cores?action=RELOAD
因为http://localhost:8983/solr/admin/cores?action=RELOAD&core=my_core
我收到一个 HTTP 400 错误请求。
我http://localhost:8983/solr/admin/cores?action=RELOAD
得到了以下 NullPointerException,但我不知道如何解释:
<response>
<lst name="responseHeader">
<int name="status">500</int>
<int name="QTime">0</int>
</lst>
<lst name="error">
<str name="trace">
java.lang.NullPointerException at java.util.TreeMap.getEntry(TreeMap.java:342) at java.util.TreeMap.containsKey(TreeMap.java:227) at java.util.TreeSet.contains(TreeSet.java:234) at org.apache.solr.handler.admin.CoreAdminHandler.handleReloadAction(CoreAdminHandler.java:726) at org.apache.solr.handler.admin.CoreAdminHandler.handleRequestInternal(CoreAdminHandler.java:226) at org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:189) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143) at org.apache.solr.servlet.SolrDispatchFilter.handleAdminRequest(SolrDispatchFilter.java:783) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:282) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:220) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:368) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72) at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Thread.java:745)
</str>
<int name="code">500</int>
</lst>
</response>
版本
- Windows Server 2008 R2 标准版
- Solr 5.1.0
答案1
- 复制现有的 Solr 核心
- 通过打开文件 core.properties 并编辑字段名称(如 name=my_core)来重命名核心名称
重新启动 Solr Windows 服务- 在 Solr Web 界面上,选择
Core Admin
并单击按钮Add Core
类型
名称 =
my_core
实例目录:
my_core
- 点击按钮
Add Core