如何在不重新启动Solr服务器的情况下添加Solr内核?

如何在不重新启动Solr服务器的情况下添加Solr内核?

有没有可能?

我目前添加Solr核心的方法(服务器重启)

根据这个常见问题,我做了以下几点:

  1. 复制现有的Solr核心
  2. 通过打开文件core.properties并编辑字段namename=my_core重命名核心名称
  3. 重新启动Solr Windows服务

我的首选添加Solr核心的方式( 无需重新启动服务器)

和上面一样,但在第2步之后,我希望有一些方法可以在Solr Web界面中显示核心,而无需重新启动整个服务器。

我的研究至今

互联网上的资源表明,它应该是可能的,但我还没有能够得到它的工作。

论坛:加载核心,无需重新启动/重新加载Solr

在这个论坛中,他们只是说“是的,这是可能的”,并指向这个名为CoreAdmin的Solr文档页面 。

Serverfault的问题:solr核心重新加载没有tomcat重新启动

这个服务器的问题solr核心重新加载没有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 Standard
  • Solr 5.1.0

  1. 复制现有的Solr核心
  2. 通过打开文件core.properties并编辑字段名称(如name = my_core)来重命名核心名称
  3. 重新启动Solr Windows服务
  4. 在Solr Web界面上,selectCore Admin ,然后单击Add Corebutton
  5. types

    name = my_core

    instanceDir: my_core

  6. 点击Add Corebutton

Solr核心管理添加核心