>  기사  >  백엔드 개발  >  Elasticsearch와 PHP를 사용하여 다중 기준 검색 기능을 구축하는 방법

Elasticsearch와 PHP를 사용하여 다중 기준 검색 기능을 구축하는 방법

WBOY
WBOY원래의
2023-07-08 09:18:11823검색

Elasticsearch와 PHP를 사용하여 다중 조건 검색 기능을 구축하는 방법

소개:
Elasticsearch는 강력한 검색 기능을 구축하는 데 자주 사용되는 오픈 소스 분산 검색 및 분석 엔진입니다. 빠르고 정확한 검색이 가능하며 다양한 유형의 쿼리를 지원합니다. 이 기사에서는 Elasticsearch와 PHP를 사용하여 다중 조건 검색 기능을 구축하는 방법을 소개하고 해당 코드 예제를 제공합니다.

  1. Elasticsearch 설치 및 구성:
    먼저 Elasticsearch를 설치하고 구성해야 합니다. 공식 웹사이트에서 Elasticsearch를 다운로드하고 지침에 따라 설치할 수 있습니다. 설치가 완료되면 명령줄 인터페이스를 사용하여 Elasticsearch를 시작합니다.
  2. Elasticsearch PHP 확장 설치 및 구성:
    다음으로 Elasticsearch용 PHP 확장을 설치하고 구성해야 합니다. Composer를 사용하면 Elasticsearch PHP 확장을 쉽게 설치할 수 있습니다. 프로젝트의 루트 디렉터리에 작곡가.json 파일을 생성하고 다음 콘텐츠를 추가합니다.
{
    "require": {
        "elasticsearch/elasticsearch": "^7.0"
    }
}

그런 다음 composer install 명령을 실행하여 Elasticsearch PHP 확장을 설치합니다.

  1. Elasticsearch에 연결:
    PHP 코드에서 Elasticsearch와의 연결을 설정해야 합니다. 먼저 Elasticsearch PHP 확장의 네임스페이스를 도입하고 Elasticsearch 클라이언트 객체를 생성합니다:
<?php
require 'vendor/autoload.php';

use ElasticsearchClientBuilder;

$hosts = [
    'http://localhost:9200' // Elasticsearch的访问地址
];

$client = ClientBuilder::create()->setHosts($hosts)->build();
?>
  1. 인덱스 생성:
    다중 조건 검색을 수행하기 전에 인덱스를 생성하고 인덱스에 데이터를 추가해야 합니다. 기존 인덱스가 이미 있는 경우 이 단계를 건너뛸 수 있습니다.

먼저 인덱스 구성 및 매핑을 정의합니다. 예를 들어, "articles"라는 인덱스를 생성하고 "articles" 유형을 정의하고 "title" 및 "content" 필드의 유형을 지정합니다.

<?php
$params = [
    'index' => 'articles',
    'body' => [
        'mappings' => [
            'properties' => [
                'title' => ['type' => 'text'],
                'content' => ['type' => 'text']
            ]
        ]
    ]
];

$response = $client->indices()->create($params);
?>

그런 다음 인덱스에 문서를 추가합니다. 예를 들어 "News"라는 제목의 문서를 추가해 보겠습니다.

<?php
$params = [
    'index' => 'articles',
    'body' => [
        'title' => '新闻',
        'content' => '这是一条新闻'
    ]
];

$response = $client->index($params);
?>
  1. 다중 기준 검색 수행:
    이제 다중 기준 검색을 수행할 수 있습니다. 먼저 모든 검색 기준을 포함하는 쿼리를 정의합니다. 예를 들어 제목에 "News"가 포함되고 내용에 "International"이 포함된 문서를 검색하려고 합니다.
<?php
$params = [
    'index' => 'articles',
    'body' => [
        'query' => [
            'bool' => [
                'must' => [
                    ['match' => ['title' => '新闻']],
                    ['match' => ['content' => '国际']]
                ]
            ]
        ]
    ]
];

$response = $client->search($params);
?>

마지막으로 검색 결과를 반복하고 각 문서의 제목과 내용을 인쇄합니다.

<?php
foreach ($response['hits']['hits'] as $hit) {
    echo '标题:' . $hit['_source']['title'] . '<br>';
    echo '内容:' . $hit['_source']['content'] . '<br>';
    echo '----------------<br>';
}
?>

결론:
위 단계를 통해 Elasticsearch와 PHP를 사용하여 다중 기준 검색 기능을 구축할 수 있습니다. 먼저 Elasticsearch와 해당 PHP 확장을 설치 및 구성한 다음 Elasticsearch에 연결하고 마지막으로 다중 조건 검색을 수행하고 검색 결과를 처리합니다.

참고: 검색의 정확성과 성능을 보장하려면 적합한 단어 분할기 설정, 색인 구축 등 다중 조건 검색을 사용하기 전에 색인을 최적화하는 것이 좋습니다.

참고 자료:

  • Elasticsearch 공식 문서: https://www.elastic.co/guide/index.html
  • Elasticsearch PHP 공식 문서: https://www.elastic.co/guide/en/elasticsearch/ 클라이언트/php-api/current/index.html

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

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