背景
經常將遺留Search (ES) 與遺留應用程式整合由於資料結構和索引要求的差異帶來了挑戰。對於複雜的關係模式,非規範化資料和展平實體可以提高效能並簡化查詢。
問題:
如何展平具有多個實體綁定(n :m 關係)以在 ES 中實現最佳索引?
解決方案:
1.反規範化資料:
建立包含所有相關資料的產品文檔,包括嵌入的相關實體數組。下面是範例架構:
{ "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] }
2。映射類型:
配置映射類型以符合新架構:
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" } } } } }
3. SQL 查詢:
使用連接相關實體並連接標誌標題的查詢從資料庫檢索資料:
以上是如何透過多個實體綁定優化ElasticSearch索引結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!