全部产品
Search
文档中心

OpenSearch:Skema Indeks

更新时间:Jul 02, 2025

Ikhtisar

Setiap dokumen berisi beberapa bidang, dan setiap bidang mencakup satu set kata. Indeks digunakan untuk mempercepat pengambilan data. Indeks dapat dibagi menjadi berbagai jenis berdasarkan pemetaan. Bagian berikut menjelaskan beberapa konsep terkait indeks:

  • Bidang: Nama dan tipe bidang digunakan untuk mendefinisikan tabel indeks.

  • Indeks terbalik: Indeks menyimpan pemetaan dari kata ke lokasi dalam dokumen. Contoh: Kata A: (Dok1, Dok2,..., DokN). Indeks terbalik digunakan untuk pengambilan data dan membantu menemukan dokumen yang berisi kata kunci tertentu.

  • Indeks maju: Indeks menyimpan pemetaan dari dokumen ke bidang. Contoh: ID_Dok (term1, term2,... termn). Indeks maju dapat dibagi menjadi indeks nilai tunggal dan indeks nilai ganda. Indeks nilai tunggal mencakup nilai data dengan atribut nilai tunggal, yang memiliki panjang tetap dan tidak termasuk nilai tipe String. Hal ini meningkatkan efisiensi kueri data dan memungkinkan pembaruan data indeks. Atribut nilai ganda menunjukkan bahwa sebuah bidang berisi beberapa data dengan jumlah yang bervariasi, yang dapat memengaruhi kinerja kueri secara negatif. Data indeks tersebut tidak dapat diperbarui.

    Indeks maju digunakan untuk mendapatkan atribut data berdasarkan ID dokumen. Atribut ini dapat digunakan untuk statistik, pengurutan, dan penyaringan. OpenSearch Retrieval Engine Edition mendukung tipe data bidang berikut dalam indeks maju:

    INT8 (tipe integer bertanda 8-bit) dan UINT8 (tipe integer tak bertanda 8-bit)

    INT16 (tipe integer bertanda 16-bit)

    UINT16 (tipe integer tak bertanda 16-bit)

    INTEGER (tipe integer bertanda 32-bit)

    UINT32 (tipe integer tak bertanda 32-bit) dan INT64 (tipe integer bertanda 64-bit)

    UINT64 (tipe integer tak bertanda 64-bit)

    FLOAT (bilangan titik mengambang 32-bit)

    DOUBLE (bilangan titik mengambang 64-bit)

    STRING (tipe string)

  • Indeks ringkasan: Indeks menyimpan data mirip dengan indeks maju, tetapi menyimpan pemetaan dari bidang ke dokumen. Indeks ringkasan membantu menemukan konten dengan cepat berdasarkan ID dokumen dan digunakan untuk menampilkan hasil pencarian. Indeks ringkasan berisi sejumlah besar data. Untuk setiap kueri, Anda hanya perlu mendapatkan hasil pencarian dari dokumen berdasarkan indeks ringkasan tanpa mengambil data berlebihan. OpenSearch Retrieval Engine Edition menyediakan mekanisme kompresi untuk indeks ringkasan. Jika kompresi diaktifkan, sistem menggunakan zlib untuk mengompres indeks ringkasan sebelum menyimpannya. Saat membaca data, mesin pencari mendekompres indeks ringkasan dan mengembalikan hasil kepada pengguna.

Catatan

Untuk informasi lebih lanjut tentang cara mengonfigurasi tabel indeks, lihat Konfigurasikan tabel indeks.

Contoh skema indeks:

{
  "file_compress": [
    {
      "name": "file_compressor",
      "type": "zstd"
    },
    {
      "name": "no_compressor",
      "type": ""
    }
  ],
  "table_name": "test",
  "summarys": {
    "summary_fields": [
      "id",
      "fb_boolean",
      "fb_datetime",
      "fb_string",
      "fb_decimal",
      "fb_bigint",
      "fb_text"
    ],
    "parameter": {
      "file_compressor": "zstd"
    }
  },
  "indexs": [
    {
      "index_name": "id",
      "index_type": "PRIMARYKEY64",
      "index_fields": "id",
      "has_primary_key_attribute": true,
      "is_primary_key_sorted": false
    },
    {
      "index_name": "fb_boolean",
      "index_type": "STRING",
      "index_fields": "fb_boolean",
      "file_compress": "file_compressor",
      "format_version_id": 1
    },
    {
      "index_name": "fb_datetime",
      "index_type": "STRING",
      "index_fields": "fb_datetime",
      "file_compress": "file_compressor",
      "format_version_id": 1
    },
    {
      "index_name": "fb_string",
      "index_type": "STRING",
      "index_fields": "fb_string"
    },
    {
      "index_name": "fb_text",
      "index_type": "TEXT",
      "index_fields": "fb_text"
    }
  ],
  "attributes": [
    {
      "field_name": "id",
      "file_compress": "no_compressor"
    },
    {
      "field_name": "fb_boolean",
      "file_compress": "file_compressor"
    },
    {
      "field_name": "fb_datetime",
      "file_compress": "no_compressor"
    },
    {
      "field_name": "fb_string",
      "file_compress": "file_compressor"
    },
    {
      "field_name": "fb_decimal",
      "file_compress": "no_compressor"
    },
    {
      "field_name": "fb_bigint",
      "file_compress": "no_compressor"
    }
  ],
  "fields": [
    {
      "user_defined_param": {},
      "field_name": "id",
      "field_type": "INT64",
      "compress_type": "equal"
    },
    {
      "field_name": "fb_boolean",
      "field_type": "STRING",
      "compress_type": "uniq"
    },
    {
      "field_name": "fb_datetime",
      "field_type": "STRING",
      "compress_type": "uniq"
    },
    {
      "user_defined_param": {
        "multi_value_sep": ","
      },
      "field_name": "fb_string",
      "field_type": "STRING",
      "compress_type": "equal",
      "multi_value": true
    },
    {
      "field_name": "fb_decimal",
      "field_type": "DOUBLE"
    },
    {
      "field_name": "fb_bigint",
      "field_type": "INT64",
      "compress_type": "equal"
    },
    {
      "field_name": "fb_text",
      "field_type": "TEXT",
      "analyzer": "chn_standard"
    }
  ]
}

Tambahkan tabel indeks

  1. Di halaman detail instance, pilih Pusat Konfigurasi > Skema Indeks di panel navigasi sisi kiri. Di halaman yang muncul, klik Buat Tabel Indeks.

  1. Konfigurasikan parameter Tabel Indeks, Sumber Data, dan Shard Data.

  1. Konfigurasikan bidang.

Pisahkan bidang multi-nilai dengan pemisah:

Pemisah default di OpenSearch Retrieval Engine Edition adalah ^]. Anda dapat menyesuaikan pemisah sesuai kebutuhan bisnis Anda.

Tentukan apakah akan mengompres bidang atribut dan data bidang:

  • Bidang atribut: Secara default, bidang atribut tidak dikompres. Jika file_compressor dipilih untuk bidang atribut, maka bidang tersebut dikompres.

  • Data bidang: Secara default, data bidang tidak dikompres. Untuk bidang multi-nilai atau bidang tipe STRING, uniq dipilih secara default. Untuk bidang nilai tunggal, equal dipilih secara default.

Catatan

Jika Anda mengompres bidang atribut, kami sarankan Anda memodifikasi metode pemuatan indeks untuk mengurangi dampak pada kinerja. Untuk memodifikasi metode pemuatan indeks, lakukan operasi berikut: Di halaman detail instance suatu instance, klik Manajemen Penyebaran di panel navigasi sisi kiri. Di halaman yang muncul, klik worker Searcher yang ingin Anda kelola. Di panel Konfigurasi Worker Searcher, klik tab Konfigurasi Tabel Online.

  1. Konfigurasikan indeks.

Tentukan apakah akan mengompres bidang indeks:

  • Secara default, bidang indeks tidak dikompres. Jika file_compressor dipilih untuk bidang indeks, maka bidang tersebut dikompres.

Catatan
  • Indeks kunci utama tidak dapat dikompres.

  • Jika Anda mengompres bidang indeks, kami sarankan Anda memodifikasi metode pemuatan indeks untuk mengurangi dampak pada kinerja. Untuk memodifikasi metode pemuatan indeks, lakukan operasi berikut: Di halaman detail instance suatu instance, klik Manajemen Penyebaran di panel navigasi sisi kiri. Di halaman yang muncul, klik worker Searcher yang ingin Anda kelola. Di panel Konfigurasi Worker Searcher, klik tab Konfigurasi Tabel Online.

  1. Setelah konfigurasi selesai, klik Simpan Versi. Di kotak dialog yang muncul, masukkan deskripsi dan klik Publikasikan. Deskripsi bersifat opsional.

  1. Setelah tabel indeks ditambahkan, Anda dapat memilih Pusat O&M > Manajemen Penyebaran di panel navigasi sisi kiri dan melihat topologi di halaman yang muncul.

  1. Jika Anda ingin membuat tabel indeks baru berlaku di kluster, lakukan operasi berikut: Di panel navigasi sisi kiri, pilih Pusat O&M > Manajemen O&M. Di halaman yang muncul, klik Perbarui Konfigurasi. Di panel Pembaruan Konfigurasi Instance, atur parameter Trigger Reindexing ke Push Configurations and Trigger Reindexing.

  1. Selama reindexing, Anda dapat memilih Pusat O&M > Riwayat Perubahan di panel navigasi sisi kiri dan klik tab Perubahan Sumber Data untuk melihat kemajuan tugas reindexing.

Setelah tugas reindexing selesai, Anda dapat mengkueri data dari tabel indeks baru.

Penting
  • Anda hanya dapat menentukan satu bidang kunci utama.

  • Dalam pengaturan bidang, Anda harus memilih Tampilan Hasil Pencarian untuk setidaknya satu bidang.

  • Untuk bidang tipe TEXT, Anda harus menetapkan metode analisis. Bidang multi-nilai tidak didukung.

  • Anda hanya dapat menentukan satu indeks kunci utama.

  • Selain pemisah default, pemisah yang digunakan untuk memisahkan bidang multi-nilai hanya dapat berupa karakter tunggal. Karakter lebar penuh tidak didukung.

  • Jika jumlah replika di kluster adalah 2, atur parameter Shard Data ke 2. Saat Anda membeli instance, pastikan bahwa jumlah worker Searcher lebih besar dari jumlah replika dikalikan dengan jumlah shard data. Jika tidak, tabel indeks yang Anda tambahkan tidak dapat digunakan.

  • Shard tunggal dapat berisi tidak lebih dari 0,6 miliar data, dan semua shard data dapat berisi maksimum total 2,1 miliar data. Ukuran indeks dari shard tunggal tidak boleh melebihi 300 GB. Jika data perlu diperbarui secara real-time, total transaksi per detik (TPS) pembaruan data dalam satu shard tidak boleh melebihi 4.000. Jika Anda menjalankan perintah add untuk menambahkan dokumen, TPS pembaruan dapat mencapai 10.000.

Modifikasi tabel indeks

Versi tabel indeks:

Secara default, dua versi tersedia untuk tabel indeks baru.

  • index_config_v1: tabel indeks yang Anda konfigurasikan untuk pertama kali. Jika Anda telah mendorong konfigurasi dan membangun ulang indeks, status tabel indeks berubah menjadi Digunakan. Jika Anda belum mendorong konfigurasi atau membangun ulang indeks, status tabel indeks berubah menjadi Tidak Digunakan.

  • index_config_edit: tabel indeks yang sedang dimodifikasi. Tabel indeks berada dalam keadaan Memodifikasi.

Jika versi tabel indeks diterbitkan secara berurutan, nomor versi bertambah. Misalnya, versi kedua bernama index_config_v2 dan versi ketiga bernama index_config_v3. Untuk membedakan versi tabel indeks, Anda harus memasukkan deskripsi setiap versi.

Modifikasi dan publikasikan versi tabel indeks baru:

  1. Temukan versi yang berada dalam keadaan Memodifikasi dan klik Modifikasi.

Catatan

Konfigurasi cluster.json:

Instance OpenSearch Retrieval Engine Edition memungkinkan Anda menggunakan penggabungan indeks untuk mengonfigurasi kunci customized_merge_config dan segment_customize_metrics_updater. Hanya instance baru yang mendukung kunci segment_customize_metrics_updater.

  1. Setelah modifikasi, klik Simpan Versi.

Anda juga dapat beralih ke mode pengembang untuk memodifikasi skema secara manual.

  1. Temukan versi yang berada dalam keadaan Memodifikasi, klik Publikasikan, dan masukkan deskripsi. Lalu, klik OK.

Pada langkah ini, sistem menghasilkan versi tabel indeks baru untuk tabel indeks. Versi tabel indeks berada dalam keadaan Tidak Digunakan.

  1. Jika Anda ingin membuat tabel indeks baru berlaku di kluster, lakukan operasi berikut: Di panel navigasi sisi kiri, pilih Pusat O&M > Manajemen O&M. Di halaman yang muncul, klik Perbarui Konfigurasi. Di panel Pembaruan Konfigurasi Instance, atur parameter Trigger Reindexing ke Push Configurations and Trigger Reindexing.

Hapus versi tabel indeks:

Anda dapat menghapus versi tabel indeks yang berada dalam keadaan Tidak Digunakan.

Lihat versi tabel indeks:

Klik Lihat untuk pergi ke halaman konfigurasi versi tabel indeks. Anda memiliki izin baca-saja di halaman tersebut.

  • Mode administrator

  • Mode pengembang

Hapus tabel indeks

Anda dapat menghapus tabel indeks yang tidak berisi versi dalam keadaan Digunakan.

Jika tabel indeks berisi versi dalam keadaan Digunakan,

Anda hanya dapat menghapus tabel indeks dengan melakukan langkah-langkah berikut:

  1. Di panel navigasi sisi kiri, pilih Pusat O&M > Manajemen Penyebaran. Di halaman yang muncul, klik tabel indeks yang ingin Anda hapus. Di panel yang muncul, klik Batalkan Langganan di tab Efektif Online.

  2. Kemudian, pilih Pusat Konfigurasi > Skema Indeks di panel navigasi sisi kiri. Di halaman yang muncul, temukan tabel indeks yang ingin Anda hapus dan klik Hapus di kolom Tindakan.

Peringatan

Jika Anda membatalkan langganan tabel indeks di halaman manajemen penyebaran, Anda harus menghapus tabel indeks dari skema indeks. Jika tidak, kinerja kueri kluster online mungkin terpengaruh.

Catatan penggunaan

  • Saat Anda menambahkan tabel indeks, Anda harus menentukan sumber data. Jika tidak ada sumber data yang ada, Anda harus menambahkan sumber data sebelum menambahkan tabel indeks.

  • Setelah tabel indeks dibuat, Anda tidak dapat mengubah nama tabel indeks.

  • Jika tabel indeks berisi versi dalam keadaan Digunakan, Anda tidak dapat menghapus tabel indeks.

  • Setiap tabel indeks hanya dapat berisi satu versi dalam keadaan Memodifikasi.