Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Merekabentuk Struktur Indeks Elasticsearch untuk Perhubungan N:M?

Bagaimana untuk Merekabentuk Struktur Indeks Elasticsearch untuk Perhubungan N:M?

Linda Hamilton
Lepaskan: 2024-10-31 15:14:01
asal
399 orang telah melayarinya

How to Design Elasticsearch Index Structure for N:M Relationships?

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:

  • id : ID Produk (rentetan, bukan_analisis)
  • tajuk: Tajuk produk (rentetan)
  • harga: Harga produk (berganda, nilai_null: 0.0)
  • bendera: Susunan tajuk bendera (rentetan, bukan_analisis)

Contoh Dokumen Produk:

{
   "id": "00c8234d71c4e94f725cd432ebc04",
   "title": "Alpha",
   "price": 589.0,
   "flags": ["Sellout", "Top Product"]
}
{
   "id": "018357657529fef056cf396626812",
   "title": "Beta",
   "price": 355.0,
   "flags": ["Discount"]
}
Salin selepas log masuk

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"
                }
            }
        }
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan