ホームページ >バックエンド開発 >PHPチュートリアル >php Elasticsearch: 動的マッピングを使用して柔軟な検索機能を実現するにはどうすればよいですか?
PHP Elasticsearch: 動的マッピングを使用して柔軟な検索機能を実現するにはどうすればよいですか?
はじめに:
検索機能は、最新のアプリケーションの開発に不可欠な部分です。 Elasticsearch は、豊富な機能と柔軟なデータ モデリングを提供する強力な検索および分析エンジンです。この記事では、動的マッピングを使用して柔軟な検索機能を実現する方法に焦点を当てます。
1. 動的マッピングの概要
Elasticsearch では、インデックス内のデータの構造とタイプを定義するためにマッピングが使用されます。動的マッピングとは、マッピング ルールを手動で指定する必要がなく、Elasticsearch がインデックス データに基づいてフィールドのタイプと特性を自動的に推測できることを意味します。これにより、データを Elasticsearch にすばやくインデックスし、柔軟な検索が可能になります。
2. 動的マッピングを使用する
動的マッピングを使用する前に、Elasticsearch インデックスを作成する必要があります。次は簡単な例です:
use ElasticsearchClientBuilder; $client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'settings' => [ 'number_of_shards' => 2, 'number_of_replicas' => 0 ], 'mappings' => [ 'dynamic_templates' => [ [ 'strings' => [ 'match_mapping_type' => 'string', 'mapping' => [ 'type' => 'text', 'analyzer' => 'standard' ] ] ] ] ] ] ]; $response = $client->indices()->create($params);
上記の例では、 my_index
という名前のインデックスでは、プライマリ シャードの数を 2 に、レプリカの数を 0 に設定します。 mappings
では、動的テンプレート strings
を定義します。これは、すべての文字列タイプのフィールドに一致し、standard## を使用して、それらを
text タイプにマップします。 # 分析用のアナライザー。
動的マッピングを使用して検索する場合、フィールドのタイプを明示的に指定する必要はなく、Elasticsearch はマッピングで定義されたタイプに基づいて検索します。例を次に示します。
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => 'php' ] ] ] ]; $response = $client->search($params);上の例では、
my_index インデックスで、
title フィールドにキーワード
php## が含まれるドキュメントを検索します。 #。 4. 動的マッピングの適用可能なシナリオ
概要:
参考リンク:
以上がphp Elasticsearch: 動的マッピングを使用して柔軟な検索機能を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。