PHP의 Elasticsearch를 기반으로 한 검색 결과 표시 및 사용자 정의 기술
소개:
현대 인터넷 시대에 검색 기능은 웹사이트와 애플리케이션의 필수적인 부분입니다. 검색엔진을 통해 사용자가 원하는 결과를 어떻게 빠르고 정확하게 표시할 것인가는 개발자들의 항상 과제였습니다. Elasticsearch는 고성능, 강력한 검색 및 분석 기능으로 개발자들 사이에서 널리 인기를 얻고 있는 오픈 소스 분산형 전체 텍스트 검색 엔진입니다. 이 기사에서는 PHP의 Elasticsearch 기반 검색 결과 표시 및 사용자 정의 기술을 소개하고 구체적인 코드 예제를 제공합니다.
1. Elasticsearch 설치 및 구성
먼저 Elasticsearch를 설치하고 시작해야 합니다. Elasticsearch 공식 홈페이지(https://www.elastic.co/)에서 최신 안정 버전을 다운로드 하신 후, 공식 문서에 따라 설치 및 구성하시면 됩니다.
2. PHP Elasticsearch 클라이언트 라이브러리
PHP에서는 공식적으로 제공되는 Elasticsearch 클라이언트 라이브러리를 사용하여 Elasticsearch와 상호 작용할 수 있습니다. Composer를 사용하여 설치할 수 있습니다:
composer require elasticsearch/elasticsearch
설치가 완료된 후 Elasticsearch 클라이언트 라이브러리를 프로젝트에 도입할 수 있습니다.
require 'vendor/autoload.php'; use ElasticsearchClientBuilder;
3. 인덱스 및 문서 생성
검색을 시작하기 전에 인덱스 및 문서를 생성해야 합니다. Elasticsearch 중간에 일부 문서를 추가하세요. 다음은 PHP 코드의 예입니다:
$client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'settings' => [ 'number_of_shards' => 1, 'number_of_replicas' => 0 ], 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text' ], 'content' => [ 'type' => 'text' ] ] ] ] ]; $response = $client->indices()->create($params); $params = [ 'index' => 'my_index', 'body' => [ [ 'index' => [ '_index' => 'my_index', '_id' => '1' ] ], [ 'title' => 'PHP Elasticsearch 搜索实战', 'content' => '在 PHP 中使用 Elasticsearch 进行高效的搜索技术实战。' ], [ 'index' => [ '_index' => 'my_index', '_id' => '2' ] ], [ 'title' => 'Elasticsearch 基础教程', 'content' => '学习使用 Elasticsearch 基础教程,从入门到精通。' ], ] ]; $response = $client->bulk($params);
IV. 검색 및 표시
다음으로 PHP에서 Elasticsearch를 사용하여 검색하고 사용자에게 결과를 표시하는 방법을 보여 드리겠습니다. 다음은 PHP 코드 예입니다.
$client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => 'Elasticsearch' ] ] ] ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { echo $hit['_source']['title'] . '<br>'; echo $hit['_source']['content'] . '<br><br>'; }
위 코드는 제목에 Elasticsearch
가 포함된 my_index
에 색인화된 문서를 검색하고 결과를 인쇄합니다. my_index
中标题中包含 Elasticsearch
的文档,并将结果打印出来。
五、搜索结果定制化
除了简单的搜索和展示,我们还可以对搜索结果进行定制化处理。以下是一个定制化处理搜索结果的示例代码:
$client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => 'Elasticsearch' ] ], 'highlight' => [ 'pre_tags' => '<strong>', 'post_tags' => '</strong>', 'fields' => [ 'title' => new stdClass(), 'content' => new stdClass() ] ] ] ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { $title = isset($hit['highlight']['title']) ? implode(' ', $hit['highlight']['title']) : $hit['_source']['title']; $content = isset($hit['highlight']['content']) ? implode(' ', $hit['highlight']['content']) : $hit['_source']['content']; echo $title . '<br>'; echo $content . '<br><br>'; }
以上代码将引入高亮的功能,将搜索到的结果中匹配的关键词用 <strong>
간단한 검색 및 표시 외에도 검색결과를 맞춤설정할 수도 있습니다. 다음은 검색 결과를 맞춤 처리하기 위한 샘플 코드입니다.
<strong>
태그로 표시합니다. 🎜🎜결론: 🎜Elasticsearch와 PHP 클라이언트 라이브러리를 사용하면 PHP에서 검색 기능을 빠르게 구현하고 검색 결과를 사용자 정의할 수 있습니다. 이 기사의 내용이 PHP에서 Elasticsearch를 사용하여 검색 결과를 표시하고 사용자 정의하는 데 도움이 되기를 바랍니다. 🎜위 내용은 PHP의 Elasticsearch 기반 검색 결과 표시 및 사용자 정의 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!