All Products
Search
Document Center

Elasticsearch:Migrasi dokumen dari kluster Solr ke Alibaba Cloud Elasticsearch

Last Updated:Mar 27, 2026

Gunakan alat open-source solr-to-es untuk memigrasikan dokumen dari Solr Core ke indeks Alibaba Cloud Elasticsearch.

Peringatan

solr-to-es hanya mendukung kluster Elasticsearch V6.X. Jika kluster target Anda menjalankan versi berbeda, lakukan uji kompatibilitas terlebih dahulu sebelum melanjutkan.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Kluster Alibaba Cloud Elasticsearch V6.X dengan fitur Auto Indexing diaktifkan. Contoh ini menggunakan V6.3.2. Untuk petunjuk penyiapan, lihat Buat kluster Alibaba Cloud Elasticsearch dan Konfigurasi file YML.

  • Instans Elastic Compute Service (ECS) yang berjalan di wilayah, zona, dan virtual private cloud (VPC) yang sama dengan kluster Elasticsearch. Contoh ini menggunakan CentOS 7.3. Untuk petunjuk penyiapan, lihat Langkah 1: Buat instans ECS.

  • Solr yang telah diinstal pada instans ECS. Contoh ini menggunakan Solr 5.0.0. Untuk informasi lebih lanjut, lihat dokumentasi resmi Solr.

  • Python 3.0 atau versi yang lebih baru yang telah diinstal pada instans ECS. Contoh ini menggunakan Python 3.6.2.

  • pysolr 3.3.3 atau versi yang lebih baru (namun sebelum 4.0) yang telah diinstal pada instans ECS.

Instal solr-to-es

  1. Hubungkan ke instans ECS. Untuk petunjuknya, lihat Hubungkan ke instans Linux menggunakan password atau kunci.

    Contoh ini menggunakan akun pengguna biasa.
  2. Unduh solr-to-es dan masuk ke direktori tempat file setup.py disimpan.

  3. Instal solr-to-es:

    sudo python setup.py install

Migrasi dokumen

Semua perintah migrasi mengikuti struktur yang sama: berikan URL kueri Solr, titik akhir Elasticsearch beserta kredensialnya, nama indeks tujuan, dan tipe indeks.

Jalankan perintah berikut untuk memigrasikan dokumen dari Solr Core ke indeks Elasticsearch:

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

Ganti placeholder dengan nilai aktual Anda:

Placeholder Deskripsi Contoh
<solr_url> Titik akhir kluster Solr Anda http://116.62..
<my_core> Nama Solr Core yang berisi dokumen yang akan dimigrasikan my_core
<username> Username untuk kluster Elasticsearch Anda. Nilai default-nya adalah elastic. elastic
<password> Password yang ditetapkan saat kluster dibuat
<elasticsearch_url> Titik akhir internal atau publik kluster Elasticsearch Anda. Temukan informasi ini di halaman Basic Information kluster Anda. Lihat Lihat informasi dasar kluster. es-cn-****.elasticsearch.aliyuncs.com
<elasticsearch_index> Nama indeks tujuan elasticsearch_index
<doc_type> Tipe indeks doc_type
Jika Anda menggunakan versi solr-to-es yang berbeda, coba gunakan sintaks perintah alternatif berikut. Untuk detailnya, lihat dokumentasi 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
Menjalankan perintah ini di lingkungan yang dijelaskan dalam topik ini menghasilkan error berikut: -bash: solr-to-es.py: command not found

Contoh

Contoh ini melakukan kueri terhadap semua dokumen di Solr Core my_core dan menuliskannya ke indeks elasticsearch_index di kluster Elasticsearch Anda.

  1. Pada instans ECS, masuk ke direktori solr-to-es-master/solr_to_es.

  2. Jalankan perintah berikut:

    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

    URL kueri Solr dalam perintah ini menggunakan parameter berikut:

    Parameter Deskripsi
    q Wajib diisi. Ekspresi kueri menggunakan sintaks kueri standar Solr. *%3A* mencocokkan semua dokumen.
    wt Format respons. Nilai yang didukung: json, xml, python, ruby, csv.
    indent Apakah respons perlu di-indentasi agar lebih mudah dibaca. Default: false.

    Untuk parameter lainnya, lihat bagian Migrasi dokumen.

  3. Masuk ke Konsol Kibana kluster Elasticsearch Anda. Untuk petunjuknya, lihat Masuk ke Konsol Kibana.

    Contoh ini menggunakan Konsol Kibana dari kluster Elasticsearch V6.7. Langkah-langkahnya mungkin berbeda untuk versi lain.
  4. Di panel navigasi sebelah kiri, klik Dev Tools, lalu klik Go to work.

  5. Di tab Console, jalankan perintah berikut untuk memastikan bahwa indeks elasticsearch_index telah dibuat:

    GET _cat/indices?v
  6. Jalankan perintah berikut untuk melihat dokumen yang telah dimigrasikan:

    GET /elasticsearch_index/doc_type/_search

    Jika berhasil, responsnya akan tampak seperti berikut:

    {
      "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
            }
          }
        ]
      }
    }

Langkah selanjutnya

Setelah memastikan bahwa dokumen telah berhasil dimigrasikan:

  1. Perbarui pengaturan koneksi aplikasi Anda agar mengarah ke titik akhir Elasticsearch.

  2. Validasi bahwa kueri pencarian mengembalikan hasil yang diharapkan.

  3. Jika Auto Indexing tidak lagi diperlukan, nonaktifkan fitur tersebut untuk menghindari pembuatan indeks yang tidak disengaja. Untuk petunjuknya, lihat Konfigurasi file YML.