Todos os produtos
Search
Central de documentação

Elasticsearch:Migrar documentos de um cluster Solr para o Alibaba Cloud Elasticsearch

Última atualização: Jun 27, 2026

Utilize a ferramenta de código aberto solr-to-es para migrar documentos de um Solr Core para um índice do Alibaba Cloud Elasticsearch.

Aviso

O solr-to-es oferece suporte apenas a clusters do Elasticsearch V6.X. Caso seu cluster de destino execute uma versão diferente, realize um teste de compatibilidade antes de continuar.

Pré-requisitos

Antes de começar, verifique se você possui:

  • Um cluster do Alibaba Cloud Elasticsearch V6.X com a opção Auto Indexing ativada. Este exemplo utiliza a versão V6.3.2. Para obter instruções de configuração, consulte Crie um cluster do Alibaba Cloud Elasticsearch e Configure o arquivo YML.

  • Uma instância do Elastic Compute Service (ECS) em execução na mesma região, zona e Virtual Private Cloud (VPC) do cluster do Elasticsearch. Este exemplo usa CentOS 7.3. Para instruções de configuração, consulte Etapa 1: Crie uma instância ECS.

  • O Solr instalado na instância ECS. A versão utilizada neste exemplo é a 5.0.0. Para mais informações, acesse a documentação oficial do Solr.

  • Python 3.0 ou superior instalado na instância ECS. Este exemplo utiliza Python 3.6.2.

  • pysolr 3.3.3 ou superior (mas anterior à 4,0) instalado na instância ECS.

Instale o solr-to-es

  1. Conecte-se à instância ECS. Para obter instruções, consulte Conectar-se a uma instância Linux usando senha ou chave.

    Este exemplo utiliza uma conta de usuário comum.
  2. Baixe o solr-to-es e acesse o diretório onde o arquivo setup.py está armazenado.

  3. Instale o solr-to-es:

    sudo python setup.py install

Migrar documentos

Todos os comandos de migração seguem a mesma estrutura: forneça a URL de consulta do Solr, o endpoint do Elasticsearch com as credenciais, o nome do índice de destino e o tipo de índice.

Execute o comando abaixo para migrar documentos de um Solr Core para um índice do Elasticsearch:

sudo python __main__.py <solr_url>:8983/solr/<my_core>/select http://<username>:<password>@<elasticsearch_url>:9200 <elasticsearch_index> <doc_type>

Substitua os espaços reservados pelos seus valores reais:

Espaço reservado

Descrição

Exemplo

<solr_url>

Endpoint do seu cluster Solr

http://116.62..

<my_core>

Nome do Solr Core que contém os documentos a serem migrados

my_core

<username>

Nome de usuário do seu cluster Elasticsearch. O padrão é elastic.

elastic

<password>

Senha definida durante a criação do cluster

<elasticsearch_url>

Endpoint interno ou público do seu cluster Elasticsearch. Encontre essa informação na página Basic Information do seu cluster. Consulte Visualize as informações básicas de um cluster.

es-cn-****.elasticsearch.aliyuncs.com

<elasticsearch_index>

Nome do índice de destino

elasticsearch_index

<doc_type>

Tipo do índice

doc_type

Se você utilizar uma versão diferente do solr-to-es, tente esta sintaxe alternativa de comando. Para detalhes, consulte a documentação do solr-to-es . sudo solr-to-es [-h] [--solr-query SOLR_QUERY] [--solr-fields COMMA_SEP_FIELDS] [--rows-per-page ROWS_PER_PAGE] [--es-timeout ES_TIMEOUT] solr_url elasticsearch_url elasticsearch_index doc_type A execução deste comando no ambiente descrito neste tópico retorna o seguinte erro: -bash: solr-to-es.py: command not found

Exemplo

Neste exemplo, todos os documentos do Solr Core my_core são consultados e gravados no índice elasticsearch_index do seu cluster Elasticsearch.

  1. Na instância ECS, acesse o diretório solr-to-es-master/solr_to_es.

  2. Execute o seguinte comando:

    sudo python __main__.py 'http://116.62.**.**:8983/solr/my_core/select?q=*%3A*&wt=json&indent=true' 'http://elastic:Your password@es-cn-so4lwf40ubsrf****.public.elasticsearch.aliyuncs.com:9200' elasticsearch_index doc_type

    A URL de consulta do Solr neste comando utiliza os seguintes parâmetros:

    Parâmetro

    Descrição

    q

    Obrigatório. Expressão de consulta que utiliza a sintaxe padrão do Solr. *%3A* corresponde a todos os documentos.

    wt

    Formato da resposta. Valores suportados: json, xml, python, ruby, csv.

    indent

    Defina se a resposta deve ser recuada para melhorar a legibilidade. Padrão: false.

    Para os demais parâmetros, consulte a seção Migrar documentos.

  3. Faça login no console Kibana do seu cluster Elasticsearch. Para obter instruções, consulte Fazer login no console Kibana.

    Este exemplo utiliza o console Kibana de um cluster Elasticsearch V6.7. As etapas podem variar em outras versões.
  4. No painel de navegação à esquerda, clique em Dev Tools e, em seguida, clique em Go to work.

  5. Na aba Console, execute o comando abaixo para confirme que o índice elasticsearch_index foi criado:

    GET _cat/indices?v
  6. Execute o seguinte comando para visualize os documentos migrados:

    GET /elasticsearch_index/doc_type/_search

    Em caso de sucesso, a resposta será semelhante a esta:

    {
      "took" : 12,
      "timed_out" : false,
      "_shards" : {
        "total" : 5,
        "successful" : 5,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : 2,
        "max_score" : 1.0,
        "hits" : [
          {
            "_index" : "elasticsearch_index",
            "_type" : "doc_type",
            "_id" : "Tz8WNW4BwRjcQciJ****",
            "_score" : 1.0,
            "_source" : {
              "id" : "2",
              "title" : [
                "test"
              ],
              "_version_" : 1648195017403006976
            }
          },
          {
            "_index" : "elasticsearch_index",
            "_type" : "doc_type",
            "_id" : "Tj8WNW4BwRjcQciJ****",
            "_score" : 1.0,
            "_source" : {
              "id" : "1",
              "title" : [
                "change.me"
              ],
              "_version_" : 1648195007391203328
            }
          }
        ]
      }
    }

Próximos passos

Após confirme que os documentos foram migrados com sucesso:

  1. Atualize as configurações de conexão da sua aplicação para apontar para o endpoint do Elasticsearch.

  2. Valide se as consultas de pesquisa retornam os resultados esperados.

  3. Caso o Auto Indexing não seja mais necessário, desative-o para evitar a criação não intencional de índices. Para obter instruções, consulte Configure o arquivo YML.