Elasticsearch를 사용하여 PHP 개발에서 검색 기능을 구현하는 방법
인터넷이 발달하면서 검색엔진의 중요성이 더욱 부각되고 있습니다. 검색엔진은 관련 콘텐츠를 빠르게 검색할 수 있을 뿐만 아니라 효율적이고 안정적이며 확장 가능해야 합니다. 널리 사용되는 분산 검색 엔진인 Elasticsearch는 검색 분야에서 많은 기업이 가장 먼저 선택하는 요소가 되었습니다. 이 기사에서는 PHP 개발을 사용하고 Elasticsearch와 결합하여 검색 기능을 구현하는 방법을 소개합니다.
- Elasticsearch 설치
시작하기 전에 먼저 Elasticsearch를 설치해야 합니다. Elasticsearch는 Java 애플리케이션이므로 먼저 Java를 설치하고 Elasticsearch 압축 파일을 다운로드해야 합니다. 그런 다음 지정된 디렉터리에 파일의 압축을 풉니다.
- 색인 만들기
색인 만들기는 Elasticsearch에서 검색하려는 문서를 저장하는 첫 번째 단계입니다. 일반적으로 인덱스는 일련의 문서(데이터 행)로 구성된 데이터베이스의 테이블로 생각할 수 있습니다.
PHP에서는 Elasticsearch-PHP 클라이언트를 사용하여 Elasticsearch와 상호 작용할 수 있습니다. Elasticsearch-PHP 패키지를 먼저 설치해야 합니다.
composer require elasticsearch/elasticsearch
다음은 인덱스를 생성하는 샘플 코드입니다.
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'settings' => [ 'number_of_shards' => 1, 'number_of_replicas' => 0, ], 'mappings' => [ 'my_type' => [ 'properties' => [ 'title' => [ 'type' => 'text' ], 'content' => [ 'type' => 'text' ], 'post_date' => [ 'type' => 'date', 'format' => 'yyyy-MM-dd HH:mm:ss' ] ] ] ] ] ]; $response = $client->indices()->create($params);
위 코드에서는 "my_index"라는 인덱스를 생성하고 "my_type" 유형이라는 인덱스입니다. "my_type" 유형 아래에 title, content 및 post_date라는 세 가지 필드를 정의했습니다.
- 색인에 문서 추가
색인을 만든 후에는 검색 시 관련 결과를 반환할 문서를 색인에 추가해야 합니다.
예를 들어 "PHP 개발 실습"이라는 기사를 추가합니다.
$params = [ 'index' => 'my_index', 'type' => 'my_type', 'id' => '1', 'body' => [ 'title' => 'PHP开发实战', 'content' => '本文介绍如何在PHP中使用Elasticsearch实现搜索功能。', 'post_date' => date('Y-m-d H:i:s') ] ]; $response = $client->index($params);
- 데이터 검색
검색은 Elasticsearch의 가장 기본적이고 일반적으로 사용되는 기능 중 하나입니다. Elasticsearch는 다음을 포함한 다양한 쿼리 방법을 지원합니다.
- 단순 문자열 쿼리
- 복합 쿼리
- 범위 쿼리
- 정규 표현식 쿼리
- 퍼지 쿼리
- 집계 쿼리 등 다음은 다음과 같습니다. 텍스트 및 날짜 범위 조건을 활용하는 간단한 검색 예:
$params = [ 'index' => 'my_index', 'type' => 'my_type', 'body' => [ 'query' => [ 'bool' => [ 'must' => [ [ 'match' => [ 'title' => 'PHP' ] ], [ 'range' => [ 'post_date' => [ 'gte' => '2021-01-01 00:00:00', 'lte' => '2021-01-31 23:59:59' ] ] ] ] ] ] ] ]; $response = $client->search($params);
위 코드에서는 "일치" 및 "범위" 쿼리를 사용하여 제목에 "PHP"가 포함되고 2021년에 출판된 기사를 검색합니다. 1 이내 결과 월.
결과 처리- 마지막으로 검색 결과를 PHP로 반환하고 사용자에게 최종 프레젠테이션을 위해 처리해야 합니다.
$hits = $response['hits']['hits']; foreach ($hits as $hit) { echo $hit['_source']['title'] . " "; echo $hit['_source']['content'] . " "; echo $hit['_source']['post_date'] . " "; }
위 코드에서는 검색 결과 세트의 각 문서를 순회하여 문서의 제목, 내용, 발행 날짜를 출력합니다.
요약
이 글에서는 Elasticsearch와 결합된 PHP를 사용하여 검색 기능을 구현하는 방법을 소개합니다. 이 기사를 공부하면 색인 생성, 문서 추가, 데이터 검색 및 결과 처리와 같은 기본 작업에 대해 배울 수 있습니다. 물론 Elasticsearch에는 집계 쿼리, 강조 표시, 정렬 등과 같은 많은 사용 기술도 있습니다. 이러한 기술은 Elasticsearch를 사용하여 검색 기능을 더 잘 구현하는 데 도움이 될 수 있습니다.
위 내용은 Elasticsearch를 사용하여 PHP 개발에서 검색 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는
