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 중국어 웹사이트의 기타 관련 기사를 참조하세요!