ホームページ >データベース >mysql チュートリアル >電子商取引アプリケーションで複数のエンティティ バインディングの ElasticSearch インデックスを構築するにはどうすればよいですか?
問題:
既存のエンティティ バインディングに対する ElasticSearch (ES) の実装- MySQL データベースを使用したコマース アプリケーション。複雑なデータベースを表すためにインデックス構造をどのように設定する必要がありますか複数のエンティティ バインディングを含むスキーマ?
回答:
非正規化アプローチ:
複数のエンティティ バインディングを処理するには、非正規化アプローチが推奨されます。ドキュメントとエンティティの間に 1 対 1 のマッピングを作成することで、データ構造をフラット化します。この場合、「Products」、「Flags」、および「flagsProducts」テーブルの必要なフィールドをすべて含む「product」という単一のドキュメント タイプを作成します。
Product Document Structure:
{ "id": "00c8234d71c4e94f725cd432ebc04", "title": "Alpha", "price": 589.0, "flags": ["Sellout", "Top Product"] }
エラスティックサーチマッピング:
「product」インデックスのマッピング タイプは次のようになります:
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 クエリ:
データベースから必要なデータを抽出するには、次の SQL クエリを使用します:
以上が電子商取引アプリケーションで複数のエンティティ バインディングの ElasticSearch インデックスを構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。