ElasticSearch における複数のエンティティ バインディングのインデックス構造
ElasticSearch (ES) の基本的な理解から始めると、セットアップという課題に遭遇します。複数のエンティティを含む複雑なデータベース構造を持つ従来の電子商取引アプリケーション向けの効率的なインデックス構造bindings.
この課題に対処するには、データベース構造をフラット化することを検討してください。これには、必要なすべての情報を含む製品の単一インデックスを作成し、製品とフラグ間の N:M 関係を排除することが含まれます。
製品インデックス マッピング:
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" } } } } }
このマッピングにより、ID、タイトル、価格、フラグのフィールドを含む製品インデックスが作成されます。 flags フィールドは、関連付けられたフラグを表す文字列の配列です。
データ取得用の SQL クエリ:
製品データとそれに関連付けられたフラグを取得するには、次のコマンドを使用します。 SQL クエリ:
以上が電子商取引における複数のエンティティ バインディングの Elasticsearch インデックス作成を最適化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。