為多個實體綁定設定Elasticsearch 索引結構
簡介
Elsearch ES )到現有的應用程式可能是一項艱鉅的任務。此對話解決了在處理遺留資料庫中的多個實體綁定時設定 ES 索引結構的挑戰。
資料庫結構
提供的資料庫結構呈現三個表: Products、Flags 和 flagsProducts,表示產品和標誌之間的 N:M 關係。目標是在 ES 中複製此結構,同時最佳化高效查詢。
推薦方法:扁平化
建議扁平化,而不是維持 N:M 關係結構並建立嵌入標誌資訊的產品文件。這種方法簡化了查詢並改進了資料存取。
產品文件結構
扁平化的產品文件將包含以下欄位:
範例產品文件:
{ "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] } { "id": "018357657529fef056cf396626812", "title": "Beta", "price": 355.0, "flags": ["Discount"] }
產品映射類型
ES 中對應的映射類型為:
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" } } } } }
ES 中對應的映射類型為:
ES 中對應的映射類型為:從資料庫取得資料從資料庫擷取必要的資料以攝取到ES 的資料庫,使用下列SQL 查詢:
以上是如何設計N:M關係的Elasticsearch索引結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!