首頁  >  文章  >  後端開發  >  如何將複雜的關係資料建模為扁平化的 ElasticSearch 索引結構?

如何將複雜的關係資料建模為扁平化的 ElasticSearch 索引結構?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-01 14:12:02663瀏覽

How to Model Complex Relational Data Into a Flattened ElasticSearch Index Structure?

具有多個實體綁定的ElasticSearch 索引結構

了解優化ElasticSearch (ES) 整合的資料庫結構的必要性,探索如何優化資料庫結構至關重要將複雜的關聯式資料建模為扁平化的ES 索引結構。

扁平結構中的多個實體綁定

非規範化是最佳化資料儲存的關鍵技術。例如,不要透過資料透視表維護產品和標誌之間的 N:M 關係,而是考慮建立平面 ES 索引,其中每個產品文件都包含關聯標誌的陣列。

產品文檔結構

扁平化產品文件將類似於以下結構:

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

ES 索引的產品映射類型

ES 索引的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"
                }
            }
        }
    }
}

使用SQL 查詢擷取資料

要從資料庫中取得必要的資料以進行Logstash 處理,需要使用SQL查詢可以使用如下:

以上是如何將複雜的關係資料建模為扁平化的 ElasticSearch 索引結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn