Como eu adiciono um núcleo Solr sem reiniciar o servidor Solr?

2

Pergunta

Como eu adiciono um núcleo Solr sem reiniciar o servidor Solr?

É possível?

Minha maneira atual de adicionar núcleos do Solr ( com reinicialização do servidor)

De acordo com esta FAQ eu faço o seguinte:

  1. Copiar um núcleo do Solr existente
  2. Renomeie o nome do núcleo abrindo o arquivo core.properties e editando o campo name like name=my_core
  3. Reinicie o serviço do Windows do Solr

Minha maneira preferida de adicionar núcleos do Solr ( sem reinicialização do servidor)

O mesmo que acima, mas após o passo 2, eu gostaria de ter alguma maneira de tornar o núcleo visível na interface da Web do Solr sem precisar reiniciar o servidor inteiro.

Minha pesquisa até agora

Os recursos na Internet indicam que isso deve ser possível, mas ainda não consegui fazê-lo funcionar.

Fórum: Carregue os núcleos sem reiniciar / recarregar o Solr

Em este fórum eles apenas dizem " sim, é possível "e aponte para esta página de documentação do Solr chamada CoreAdmin .

Pergunta de falha do servidor: o recarregamento do núcleo solr sem um reinício do tomcat

Esta questão de falha de servidor recarregar o núcleo do solr sem um reinício do tomcat uma resposta que aponta para Seção #RELOAD da mesma documentação do CoreAdmin Solr como acima, mas não consigo fazer o Solr carregar novos núcleos sem

http://localhost:8983/solr/admin/cores?action=RELOAD&core=my_core 

nem

http://localhost:8983/solr/admin/cores?action=RELOAD

Por http://localhost:8983/solr/admin/cores?action=RELOAD&core=my_core , recebo uma Solicitação incorreta HTTP 400.

Para http://localhost:8983/solr/admin/cores?action=RELOAD , recebo o seguinte NullPointerException, que não sei interpretar:

<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>

Versões

  • Windows Server 2008 R2 Standard
  • Solr 5.1.0
por Lernkurve 02.07.2015 / 09:32

1 resposta

1
  1. Copiar um núcleo do Solr existente
  2. Renomeie o nome do núcleo abrindo o arquivo core.properties e editando o nome do campo como name = my_core
  3. Reinicie o serviço do Windows do Solr
  4. Na interface da Web do Solr, selecione Core Admin e clique no botão Add Core
  5. Digite

    name = my_core

    instanceDir: my_core

  6. Clique no botão Add Core

    
por 02.07.2015 / 14:51

Tags