PHP 開発における Elasticsearch のデータ モデリングとインデックス設計
Elasticsearch は、あらゆる規模の企業で広く使用されているオープン ソースの分散型検索および分析エンジンです。高速かつスケーラブルで強力な検索および分析機能により、大規模なデータの処理に最適です。 PHP 開発では、Elasticsearch を組み合わせることで、検索パフォーマンスとユーザー エクスペリエンスを大幅に向上させることができます。
Elasticsearch を使用する前に、データ モデリングとインデックス設計を実行する必要があります。この記事では、Elasticsearch のデータ モデリングとインデックス設計に PHP を使用する方法を紹介し、参考として具体的なコード例を添付します。
1. データ モデリング
Elasticsearch では、データはドキュメントの形式で保存されます。各ドキュメントは一連のフィールド (フィールド) で構成され、各フィールドには名前と値が含まれます。
まず、保存するデータ構造を決定する必要があります。製品検索要件があり、製品名、説明、カテゴリ、価格、その他の情報を保存する必要があるとします。この情報に基づいて、次のデータ構造を設計できます。
{ "name": "iPhone 12", "description": "Apple 最新发布的手机", "category": "手机", "price": 6999 }
次に、これらのドキュメントを保存するためのインデックス (Index) を作成する必要があります。インデックスはデータベース内のテーブルに似ており、各インデックスには複数のドキュメントが含まれます。
PHP を使用してインデックスを作成するサンプル コードは次のとおりです。
$client = new ElasticsearchClient(); $params = [ 'index' => 'products', 'body' => [ 'mappings' => [ 'properties' => [ 'name' => ['type' => 'text'], 'description' => ['type' => 'text'], 'category' => ['type' => 'keyword'], 'price' => ['type' => 'integer'] ] ] ] ]; $response = $client->indices()->create($params);
上記のコードでは、最初に Elasticsearch クライアント オブジェクトを作成し、次に indices()- を使用します。 >create( )
メソッドは、「product」という名前のインデックスを作成します。 body
パラメータでは、ドキュメントのフィールドとそのタイプを定義します。
2. インデックスの設計
インデックスの設計は Elasticsearch の重要なタスクであり、検索のパフォーマンスと精度を決定します。一般的に使用されるインデックス設計手法は次のとおりです。
Elasticsearch はワード ブレーカーを使用してテキストを分割し、より正確に検索できるようにします。 。インデックスの設計中に、特定のニーズに合ったトークナイザーを指定できます。たとえば、英語テキストの場合は english
トークナイザーを使用でき、中国語テキストの場合は ik_smart
または ik_max_word
トークナイザーを使用できます。
サンプルコード:
$params = [ 'index' => 'products', 'body' => [ 'settings' => [ 'analysis' => [
以上がPHP開発におけるElasticsearchのデータモデリングとインデックス設計の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。