PHP と Elasticsearch によって実装されたリアルタイム画像検索ソリューション
要約:
今日の急速な技術開発の時代において、画像検索はますます重要になっています。この記事では、PHP と Elasticsearch に基づくリアルタイム画像検索ソリューションを紹介し、読者の理解を助けるコード例を提供します。
<?php require 'vendor/autoload.php'; use ElasticsearchClientBuilder; // 创建Elasticsearch客户端 $client = ClientBuilder::create()->build(); // 创建索引 $params = [ 'index' => 'images', 'body' => [ 'mappings' => [ 'properties' => [ 'image' => [ 'type' => 'binary' ], 'features' => [ 'type' => 'dense_vector', 'dims' => 128 ] ] ] ] ]; $client->indices()->create($params); // 添加图像及特征向量到索引中 $params = [ 'index' => 'images', 'id' => '1', 'body' => [ 'image' => base64_encode(file_get_contents('image.jpg')), 'features' => [0.12, 0.56, 0.78, ...] // 特征向量示例 ] ]; $client->index($params); // 执行图像检索 $params = [ 'index' => 'images', 'body' => [ 'query' => [ 'script_score' => [ 'query' => [ 'match_all' => [] ], 'script' => [ 'source' => 'cosineSimilarity(params.queryVector, doc['features']) + 1.0', 'params' => [ 'queryVector' => [0.34, 0.78, 0.91, ...] // 查询图像的特征向量示例 ] ] ] ] ] ]; $response = $client->search($params); // 处理搜索结果 foreach ($response['hits']['hits'] as $hit) { $id = $hit['_id']; $score = $hit['_score']; $image = base64_decode($hit['_source']['image']); // 显示图像及相关信息 echo "<img src='data:image/jpeg;base64," . $image . "' />"; echo "相似度得分: " . $score; } ?>
上記のコードは、PHP の Elasticsearch クライアント ライブラリを使用してインデックスを作成し、画像と特徴ベクトルを追加し、画像の取得を実行し、結果を処理する方法を示しています。ユーザーは自分のニーズに応じて変更したり拡張したりできます。
以上がPHP と Elasticsearch で実装されたリアルタイム画像検索ソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。