>  기사  >  백엔드 개발  >  PHP와 Elasticsearch를 통해 관련 검색 기능을 구현하는 방법

PHP와 Elasticsearch를 통해 관련 검색 기능을 구현하는 방법

WBOY
WBOY원래의
2023-07-17 08:46:36945검색

PHP와 Elasticsearch를 통해 관련 검색 기능을 구현하는 방법

개요:
현대 웹 애플리케이션에서 검색 기능은 매우 중요한 부분입니다. 강력한 오픈 소스 검색 엔진인 Elasticsearch는 기존 데이터베이스의 전체 텍스트 검색에 비해 더 유연하고 효율적인 검색 기능을 제공합니다. 이 글에서는 PHP와 Elasticsearch를 사용하여 관련 검색 기능을 구현하는 방법을 소개합니다.

  1. 환경 설정
    시작하기 전에 PHP와 Elasticsearch가 올바르게 설치되었는지 확인해야 합니다. PHP 공식 홈페이지와 Elasticsearch 공식 홈페이지를 통해 다운로드 및 설치가 가능합니다. 또한 Elasticsearch의 PHP 클라이언트 라이브러리인 Elasticsearch-PHP도 설치해야 합니다. Composer를 통해 설치하고 다음 명령을 실행할 수 있습니다.

    composer require elasticsearch/elasticsearch
  2. 인덱스 생성
    Elasticsearch를 사용하여 검색하기 전에 먼저 인덱스를 생성해야 합니다. 데이터를 저장하고 구성하는 기본 단위입니다. Elasticsearch-PHP에서 제공하는 API를 통해 쉽게 인덱스를 생성하고 관리할 수 있습니다. 다음은 인덱스를 생성하고 필드 매핑을 정의하는 샘플 코드입니다.

    require_once 'vendor/autoload.php';
    
    $client = ElasticsearchClientBuilder::create()->build();
    
    $params = [
     'index' => 'my_index',
     'body' => [
         'mappings' => [
             'properties' => [
                 'title' => [
                     'type' => 'text',
                     'analyzer' => 'standard'
                 ],
                 'content' => [
                     'type' => 'text',
                     'analyzer' => 'standard'
                 ],
             ]
         ]
     ]
    ];
    
    $response = $client->indices()->create($params);
  3. 데이터 쓰기
    인덱스 생성이 완료된 후 후속 검색을 위해 Elasticsearch에 데이터를 써야 합니다. 간단한 HTTP 요청을 통해 데이터 쓰기를 수행할 수 있습니다. 다음은 Elasticsearch 인덱스에 기사를 작성하는 샘플 코드입니다.

    $params = [
     'index' => 'my_index',
     'id' => 1,
     'body' => [
         'title' => 'Elasticsearch相关搜索',
         'content' => 'Elasticsearch是一种强大的搜索引擎,可以实现高效的相关搜索功能。',
     ]
    ];
    
    $response = $client->index($params);
  4. 검색 수행
    데이터가 작성된 후 검색 작업을 수행할 수 있습니다. Elasticsearch는 다양한 유형의 검색을 위한 풍부한 API를 제공하며 일치 쿼리, 구문 쿼리, 범위 쿼리 등을 포함한 다양한 쿼리 방법을 지원합니다. 관련 검색을 수행하는 샘플 코드는 다음과 같습니다.

    $params = [
     'index' => 'my_index',
     'body' => [
         'query' => [
             'match' => [
                 'content' => '搜索引擎',
             ]
         ]
     ]
    ];
    
    $response = $client->search($params);
  5. 검색 결과 얻기
    검색 작업을 수행한 후 $response를 통해 검색 결과를 얻을 수 있습니다. 검색 결과는 일치하는 문서 목록과 관련 점수 정보가 포함된 JSON 형식으로 반환됩니다. 다음은 검색 결과를 순회하여 출력하는 샘플 코드입니다.

    foreach ($response['hits']['hits'] as $hit) {
     echo 'ID: ' . $hit['_id'] . ', Score: ' . $hit['_score'] . ', Title: ' . $hit['_source']['title'] . PHP_EOL;
    }

요약:
이 글의 소개를 통해 우리는 PHP와 Elasticsearch를 사용하여 연관 검색 기능을 구현하는 방법을 배웠습니다. 먼저 PHP와 Elasticsearch 환경을 설치 및 구성한 다음 인덱스를 생성하고 데이터를 작성해야 합니다. 마지막으로 Elasticsearch-PHP에서 제공하는 API를 사용하여 관련 검색을 수행하고 검색 결과를 얻습니다. 이 글의 안내를 통해 모든 분들은 관련 검색 기능을 개발하기 위한 기본 지식을 이미 갖추셨다고 믿습니다. 실제 개발에서는 더 나은 검색 경험을 제공하기 위해 필요에 따라 검색 쿼리 매개변수와 결과 표시 방법을 더욱 최적화할 수 있습니다.

위 내용은 PHP와 Elasticsearch를 통해 관련 검색 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.