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.

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
| Pola | Asosiasi | Didukung |
|---|---|---|
| Primary + 1 secondary | Primary → Secondary | Ya |
| Primary + 2 secondary dalam rantai | Primary → B → C | Ya |
| Primary + multiple secondary (fan-out) | Primary → B, Primary → C, Primary → D (≤2 level, ≤10 tabel) | Ya |
| Primary + rantai 3-level | Primary → B → C → D (>2 level) | Tidak, kecuali untuk aplikasi eksklusif (maksimal 3 level) |
| Asosiasi siklik | Primary → B, B → Primary | Tidak |
| Primary + >10 secondary | Lebih dari 10 tabel sekunder | Tidak, kecuali untuk aplikasi eksklusif |
![]()
![]()
![]()
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 bidang | Nilai default |
|---|---|
| INT | 0 |
| STRING | null |