PHP 및 Elasticsearch를 사용하여 강조된 검색 결과를 얻는 방법
소개:
현대 인터넷 세계에서 검색 엔진은 사람들이 정보를 얻는 주요 방법이 되었습니다. 검색 결과의 가독성과 사용자 경험을 향상시키기 위해 검색 키워드를 강조하는 것이 일반적인 요구 사항이 되었습니다. 이 기사에서는 PHP와 Elasticsearch를 사용하여 강조된 검색 결과를 얻는 방법을 소개합니다.
1. 준비
시작하기 전에 PHP와 Elasticsearch가 올바르게 설치 및 구성되었는지 확인해야 합니다. Composer를 사용하여 PHP 종속성을 관리한 후 다음 명령을 사용하여 Elasticsearch의 PHP 클라이언트를 설치할 수 있습니다.
composer require elasticsearch/elasticsearch
2. Elasticsearch에 연결
먼저 PHP 스크립트에서 Elasticsearch 클라이언트 인스턴스를 생성해야 합니다. 다음 코드를 사용하여 Elasticsearch에 연결할 수 있습니다.
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build();
3. 인덱스 및 매핑 생성
검색하기 전에 Elasticsearch가 검색 요청을 올바르게 처리할 수 있도록 인덱스를 생성하고 해당 필드 매핑을 지정해야 합니다. 다음은 인덱스 및 매핑을 생성하는 샘플 코드입니다.
$params = [ 'index' => 'my_index', 'body' => [ 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text', 'fields' => [ 'keyword' => [ 'type' => 'keyword', ], ], ], 'content' => [ 'type' => 'text', 'fields' => [ 'keyword' => [ 'type' => 'keyword', ], ], ], ], ], ], ]; $response = $client->indices()->create($params);
넷째, 검색을 수행하고 결과를 강조 표시합니다.
다음으로 검색 작업을 수행하고 일치하는 키워드를 강조 표시할 수 있습니다. 다음은 검색을 수행하고 결과를 강조 표시하는 샘플 코드입니다.
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => '关键字', ], ], 'highlight' => [ 'fields' => [ 'title' => new stdClass(), 'content' => new stdClass(), ], ], ], ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { $title = isset($hit['highlight']['title'][0]) ? $hit['highlight']['title'][0] : $hit['_source']['title']; $content = isset($hit['highlight']['content'][0]) ? $hit['highlight']['content'][0] : $hit['_source']['content']; echo "标题:{$title} "; echo "内容:{$content} "; }
위 코드는 Elasticsearch를 통해 키워드 기반 검색을 수행하고 일치하는 필드를 강조 표시합니다. 검색 결과에서 특정 필드에 일치하는 키워드가 있으면 해당 필드에 대해 강조 표시된 결과가 반환됩니다.
결론:
이 글에서는 PHP와 Elasticsearch를 사용하여 강조된 검색 결과를 얻는 방법을 소개합니다. 적절한 인덱싱 및 매핑을 설정하고 관련 검색 매개변수를 사용하면 검색 결과를 쉽게 강조할 수 있습니다. 이는 의심할 여지 없이 검색 결과에 대한 사용자의 이해와 읽기를 향상시켜 사용자 경험을 향상시킬 것입니다.
참조:
위 내용은 PHP와 Elasticsearch를 사용하여 검색 결과를 강조 표시하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!