Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Merekabentuk Struktur Indeks Elasticsearch untuk Perhubungan N:M?
Menyediakan Struktur Indeks Elasticsearch untuk Pengikatan Berbilang Entiti
Pengenalan
Mengintegrasikan Elasticsearch (ES ) ke dalam aplikasi sedia ada boleh menjadi tugas yang sukar. Dialog ini menangani cabaran dalam menyediakan struktur indeks ES apabila berurusan dengan berbilang pengikatan entiti dalam pangkalan data lama.
Struktur Pangkalan Data
Struktur pangkalan data yang disediakan membentangkan tiga jadual: Produk, Bendera dan benderaProduk, yang mewakili hubungan N:M antara produk dan bendera. Matlamatnya adalah untuk meniru struktur ini dalam ES sambil mengoptimumkan pertanyaan yang cekap.
Pendekatan Disyorkan: Meratakan
Daripada mengekalkan perhubungan N:M, adalah disyorkan untuk meratakan struktur dan cipta dokumen produk yang membenamkan maklumat bendera. Pendekatan ini memudahkan pertanyaan dan menambah baik akses data.
Struktur Dokumen Produk
Dokumen produk yang diratakan akan mengandungi medan berikut:
Contoh Dokumen Produk:
{ "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] } { "id": "018357657529fef056cf396626812", "title": "Beta", "price": 355.0, "flags": ["Discount"] }
Jenis Pemetaan Produk
Yang sepadan jenis pemetaan dalam ES ialah:
PUT products { "mappings": { "product": { "properties": { "id": { "type": "string", "index": "not_analyzed" }, "title": { "type": "string" }, "price": { "type": "double", "null_value": 0.0 }, "flags": { "type": "string", "index": "not_analyzed" } } } } }
Mengambil Data daripada Pangkalan Data
Untuk mendapatkan semula data yang diperlukan daripada pangkalan data untuk pengingesan ke dalam ES, gunakan pertanyaan SQL berikut :
Atas ialah kandungan terperinci Bagaimana untuk Merekabentuk Struktur Indeks Elasticsearch untuk Perhubungan N:M?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!