ホームページ >データベース >mysql チュートリアル >電子商取引アプリケーションで複数のエンティティ バインディングの ElasticSearch インデックスを構築するにはどうすればよいですか?

電子商取引アプリケーションで複数のエンティティ バインディングの ElasticSearch インデックスを構築するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-06 07:15:12175ブラウズ

How to Structure an ElasticSearch Index for Multiple Entity Bindings in an E-commerce Application?

複数のエンティティ バインディングを使用した 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。