All Products
Search
Document Center

OpenSearch:Operasi JOIN pada multiple tabel

Last Updated:Apr 02, 2026

Konsol OpenSearch menyediakan empat metode untuk menentukan skema aplikasi. OpenSearch Edisi Algoritma Industri mendukung skema multi-tabel, memungkinkan Anda memodelkan hubungan data kompleks antara tabel utama dan hingga 10 tabel secondary. Saat pengindeksan, OpenSearch melakukan LEFT JOIN pada tabel-tabel tersebut untuk menghasilkan tabel lebar, yang menjadi dasar pembuatan indeks pencarian.

Cara kerja

Saat pengindeksan, OpenSearch menjalankan LEFT JOIN antara tabel utama dan semua tabel secondary terkait. Hasilnya adalah tabel lebar dengan jumlah baris yang sesuai dengan tabel utama—satu dokumen pencarian per catatan primary. Bidang dari tabel secondary yang tidak memiliki catatan yang sesuai diisi dengan nilai default: 0 untuk bidang INT dan null untuk bidang STRING.

Indeks dibangun berdasarkan tabel lebar ini dan melayani semua kueri pencarian.

image

Aturan asosiasi

Ikuti aturan berikut saat merancang skema multi-tabel:

  • Satu tabel utama per aplikasi. Hanya satu tabel yang dapat menjadi tabel utama.

  • Hanya rasio catatan N:1 atau 1:1. Setiap catatan tabel utama dipetakan ke paling banyak satu catatan tabel secondary. Satu catatan primary tidak dapat dipetakan ke beberapa catatan secondary (1:N tidak didukung).

  • Asosiasi berbasis kunci. Tabel secondary bergabung dengan tabel utama melalui primary key-nya, yang harus sesuai dengan foreign key di tabel utama. Foreign key pada tabel utama hanya dapat mereferensi primary key dari tabel secondary.

  • Tipe bidang harus sama. Bidang hanya dapat dipetakan lintas tabel jika memiliki tipe yang sama. Misalnya, primary key bertipe INT di tabel secondary hanya dapat dipetakan ke bidang bertipe INT di tabel utama.

  • Hingga dua level asosiasi untuk aplikasi standar; aplikasi eksklusif mendukung hingga tiga level.

  • Hingga 10 tabel secondary per aplikasi; aplikasi eksklusif dapat melebihi batas ini.

Pola asosiasi yang didukung

PolaAsosiasiDidukung
Primary + 1 secondaryPrimary → SecondaryYa
Primary + 2 secondary dalam rantaiPrimary → B → CYa
Primary + multiple secondary (fan-out)Primary → B, Primary → C, Primary → D (≤2 level, ≤10 tabel)Ya
Primary + rantai 3-levelPrimary → B → C → D (>2 level)Tidak, kecuali untuk aplikasi eksklusif (maksimal 3 level)
Asosiasi siklikPrimary → B, B → PrimaryTidak
Primary + >10 secondaryLebih dari 10 tabel sekunderTidak, kecuali untuk aplikasi eksklusif

imageimageimage

Batasan dan catatan operasional

Penundaan pembaruan saat N besar

Saat rasio catatan primary ke secondary adalah N:1 dan N bernilai besar, pembaruan satu catatan secondary memicu N pembaruan pada indeks tabel utama. Hal ini dapat menyebabkan penundaan pembaruan untuk kedua tabel. Pertahankan N pada angka 10 atau lebih rendah untuk meminimalkan risiko ini.

Nilai default untuk bidang yang tidak cocok

Setelah LEFT JOIN, setiap bidang dari tabel secondary yang tidak memiliki catatan primary yang sesuai diisi dengan nilai default dalam tabel lebar:

Tipe bidangNilai default
INT0
STRINGnull

Langkah berikutnya