ホームページ > データベース > mysql チュートリアル > 複数のエンティティ バインディング用に ElasticSearch インデックス構造を最適化する方法

複数のエンティティ バインディング用に ElasticSearch インデックス構造を最適化する方法

Linda Hamilton
リリース: 2024-12-04 06:34:19
オリジナル
1033 人が閲覧しました

How to Optimize ElasticSearch Index Structure for Multiple Entity Bindings?

複数のエンティティ バインディングを使用して ElasticSearch インデックス構造を設定する方法

概要

データを効率的に管理およびクエリするには、効果的な ElasticSearch (ES) インデックス構造が不可欠です。複数のエンティティ バインディングを操作する場合、検索と取得のパフォーマンスを最適化するためにインデックスを最適化することが不可欠です。

データ構造のフラット化

提供されたデータベース構造では、複数のテーブルは、製品とそれに関連するフラグを表すために使用されます。 ES インデックスを簡素化するには、データ構造を平坦化し、非正規化することをお勧めします。フラグを含むすべての関連情報を含む製品ドキュメントを作成することで、製品とフラグの間の N:M 関係を排除します。このアプローチにより、フラグ属性のクエリが簡単になります。

製品ドキュメントの例

{
   "id": "00c8234d71c4e94f725cd432ebc04",
   "title": "Alpha",
   "price": 589.0,
   "flags": ["Sellout", "Top Product"]
}
{
   "id": "018357657529fef056cf396626812",
   "title": "Beta",
   "price": 355.0,
   "flags": ["Discount"]
}
{
   "id": "01a2c32ceeff0fc6b7dd4fc4302ab",
   "title": "Gamma",
   "price": 0.0,
   "flags": ["Discount"]
}
ログイン後にコピー

製品マッピング タイプ

製品ドキュメントの 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 クエリ

データベースから必要なデータを抽出するには、変更された SQL クエリが必要です:

以上が複数のエンティティ バインディング用に ElasticSearch インデックス構造を最適化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート