ホームページ > データベース > mysql チュートリアル > 複数のエンティティ関係のための Elasticsearch インデックスを構造化するには?

複数のエンティティ関係のための Elasticsearch インデックスを構造化するには?

Susan Sarandon
リリース: 2024-11-29 16:32:10
オリジナル
829 人が閲覧しました

How to Structure an Elasticsearch Index for Multiple Entity Relationships?

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

概要

ElasticSearch の統合 (ES) ) を既存のアプリケーションに組み込むと、ES で複雑なデータベース構造をどのように複製するかという問題が頻繁に生じます。 索引。この記事では、複数のエンティティ バインディングを処理する際のインデックス構造の構成という具体的な課題に取り組みます。

データベース構造

電子商取引アプリケーションの次のデータベース構造を考えてみましょう。

  • 商品 (ID、タイトル、価格)
  • フラグ(id, title)
  • FlagsProducts (productId、flagId、externalId を含むピボット テーブル)

構造のフラット化

クエリ用に最適化するには使いやすさを考慮して、構造を平坦化してデータを非正規化することをお勧めします。これには、他のテーブルからのすべての関連情報を組み込んだ製品ドキュメントの作成が含まれます:

{
"id": "00c8234d71c4e94f725cd432ebc04",
"title": "Alpha",
"price": 589.0,
"flags": ["Sellout", "Top Product"]
}
ログイン後にコピー

ES 製品マッピング

対応する 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"
}
}
}
}
}
ログイン後にコピー

Logstash SQLクエリ

ES インデックスを設定するには、次のクエリで Logstash JDBC 入力を使用できます。

以上が複数のエンティティ関係のための Elasticsearch インデックスを構造化するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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