Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menstrukturkan Indeks Elasticsearch untuk Perhubungan Berbilang Entiti?

Bagaimana untuk Menstrukturkan Indeks Elasticsearch untuk Perhubungan Berbilang Entiti?

Susan Sarandon
Susan Sarandonasal
2024-11-29 16:32:10840semak imbas

How to Structure an Elasticsearch Index for Multiple Entity Relationships?

Cara Menstruktur Indeks ElasticSearch dengan Pengikatan Berbilang Entiti

Pengenalan

Mengintegrasikan ElasticSearch (ES ) ke dalam aplikasi sedia ada sering menimbulkan persoalan bagaimana untuk meniru pangkalan data yang kompleks struktur dalam indeks ES. Artikel ini menangani cabaran khusus untuk mengkonfigurasi struktur indeks apabila berurusan dengan berbilang pengikatan entiti.

Struktur Pangkalan Data

Pertimbangkan struktur pangkalan data berikut daripada aplikasi e-dagang:

  • Produk (id, tajuk, harga)
  • Bendera (id, tajuk)
  • BenderaProduk (jadual pangsi dengan productId, flagId, externalId)

Meratakan Struktur

Untuk mengoptimumkan pertanyaan dan kemudahan penggunaan, adalah disyorkan untuk menyahnormalkan data dengan meratakan struktur. Ini melibatkan mencipta dokumen produk yang menggabungkan semua maklumat yang berkaitan daripada jadual lain:

{
"id": "00c8234d71c4e94f725cd432ebc04",
"title": "Alpha",
"price": 589.0,
"flags": ["Sellout", "Top Product"]
}

Pemetaan Produk ES

Jenis pemetaan produk ES yang sepadan 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"
}
}
}
}
}

Logstash SQL Pertanyaan

Untuk mengisi indeks ES, input Logstash JDBC boleh digunakan dengan pertanyaan berikut:

Atas ialah kandungan terperinci Bagaimana untuk Menstrukturkan Indeks Elasticsearch untuk Perhubungan Berbilang Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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