Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengoptimumkan Struktur Indeks ElasticSearch untuk Perhubungan Pelbagai Entiti daripada Pangkalan Data Warisan?
Apabila menyepadukan ElasticSearch (ES) dengan pangkalan data warisan, adalah penting untuk mengoptimumkan struktur indeks untuk pertanyaan yang cekap. Dalam kes ini, tugasnya adalah untuk mereplikasi pangkalan data dengan struktur yang kompleks dan tidak optimum ke dalam ES.
Pangkalan data terdiri daripada tiga jadual:
Matlamatnya adalah untuk meratakan ini struktur untuk pertanyaan yang lebih mudah dalam ES, sambil mengekalkan pelbagai nilai perhubungan.
Untuk menghapuskan hubungan n:m antara produk dan bendera, kami mengesyorkan membuat dokumen produk rata yang mengandungi " flags" tatasusunan yang mengandungi semua bendera yang berkaitan untuk setiap produk. Pendekatan ini memudahkan pertanyaan untuk bendera dan menyediakan struktur data yang lebih koheren.
Berikut ialah contoh dokumen produk yang diratakan:
{ "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] } { "id": "018357657529fef056cf396626812", "title": "Beta", "price": 355.0, "flags": ["Discount"] } { "id": "01a2c32ceeff0fc6b7dd4fc4302ab", "title": "Gamma", "price": 0.0, "flags": ["Discount"] }
Pemetaan yang sepadan untuk jenis indeks "produk" akan be:
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" } } } } }
Untuk mengambil data yang diperlukan daripada pangkalan data, kami mencadangkan pertanyaan SQL berikut:
Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Struktur Indeks ElasticSearch untuk Perhubungan Pelbagai Entiti daripada Pangkalan Data Warisan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!