如何使用多個實體綁定來建立ElasticSearch 索引
簡介
Elastic ( ES )到現有應用程式中經常會提出如何在ES 索引中複製複雜資料庫結構的問題。本文解決了處理多個實體綁定時配置索引結構的具體挑戰。
資料庫結構
FlagsProducts(包含ProductId、flagId、externalId 的資料透視表)
扁平化結構
{ "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] }
最佳化查詢和易用性,建議透過展平結構來對資料進行非規範化。這涉及建立包含其他表中所有相關資訊的產品文件:
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 產品映射類型為:
Logstash SQL查詢
要填入 ES 索引,Logstash JDBC 輸入可以與下列查詢一起使用:以上是如何為多個實體關係建構Elasticsearch索引?的詳細內容。更多資訊請關注PHP中文網其他相關文章!