>백엔드 개발 >PHP 튜토리얼 >PHP 함수의 ElasticSearch 함수

PHP 함수의 ElasticSearch 함수

WBOY
WBOY원래의
2023-05-19 10:40:53879검색

빅데이터 시대가 도래하면서 데이터의 저장과 검색이 점점 더 중요해지고 있습니다. Lucene 검색 엔진을 기반으로 하는 대규모 분산 검색 및 분석 엔진인 ElasticSearch는 의심할 여지 없이 오늘날 가장 인기 있는 검색 엔진 중 하나가 되었습니다. PHP 애플리케이션에서는 데이터를 검색하기 위해 ElasticSearch를 사용해야 하는 경우가 많습니다. 이 기사에서는 일반적으로 사용되는 일부 PHP 함수의 ElasticSearch 기능을 소개합니다.

  1. Elasticsearch 클래스

먼저 Elasticsearch 클래스는 PHP 클라이언트가 Elasticsearch 서버와 상호 작용하는 핵심 클래스입니다. 일반적으로 사용되는 초기화 방법은 다음과 같습니다.

$hosts = ['http://localhost:9200'];
$client = ElasticsearchClientBuilder::create()->setHosts($hosts)->build();

그 중 $hosts는 Elasticsearch 서버 주소로, 하나 이상의 주소 배열일 수 있습니다. getClient() 메소드는 후속 작업을 용이하게 하기 위해 $client 객체를 얻을 수 있습니다.

  1. Create Index

ElasticSearch에서는 먼저 데이터를 저장할 인덱스를 생성해야 합니다. 다음은 인덱스 생성을 위한 간단한 코드 예제입니다.

$params = [
    'index' => 'my_index',
    'body' => [
        'settings' => [
            'number_of_shards' => 1,
            'number_of_replicas' => 0
        ]
    ]
];
$response = $client->indices()->create($params);

위 코드에서 $params 매개변수에는 생성할 인덱스 이름과 인덱스 설정이 포함되어 있습니다. 본문에서는 샤드 수와 인덱스 복사본 수 등을 설정할 수 있습니다. 마지막으로 create() 메소드를 실행하여 인덱스 생성 작업을 완료합니다.

  1. 문서 추가

문서 추가는 인덱스에 데이터를 추가하는 주요 방법 중 하나입니다. 다음은 문서 추가의 예입니다.

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1',
    'body' => [
        'title' => 'My first document',
        'content' => 'This is the content of my first document'
    ]
];
$response = $client->index($params);

위 코드에서 $params 매개변수에는 추가할 문서를 추가하는 내용과 방법이 포함되어 있습니다. 이 중 index는 추가할 인덱스를 나타내고, type은 추가할 문서 유형을 나타내며, id는 추가할 문서의 ID 번호, body는 추가할 문서의 내용을 나타냅니다. 마지막으로 index() 메소드를 실행하여 문서 추가 작업을 완료합니다.

  1. 문서 업데이트

기존 문서의 내용을 수정해야 하는 경우 update() 메서드를 사용할 수 있습니다. 다음은 문서 업데이트의 예입니다.

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1',
    'body' => [
        'doc' => [
            'title' => 'Updated document title',
            'content' => 'This is the updated content of my first document'
        ]
    ]
];
$response = $client->update($params);

위 코드에서 $params 매개변수에는 업데이트할 문서의 내용과 업데이트 방법이 포함되어 있습니다. 그 중 doc은 업데이트할 문서의 내용을 나타냅니다. 마지막으로 update() 메서드를 실행하여 문서 업데이트 작업을 완료합니다.

  1. 문서 삭제

기존 문서를 삭제해야 하는 경우 delete() 메서드를 사용할 수 있습니다. 다음은 문서 삭제의 예입니다.

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1'
];
$response = $client->delete($params);

위 코드에서 $params 매개변수에는 삭제할 문서의 내용과 삭제 방법이 포함되어 있습니다. 마지막으로 delete() 메소드를 실행하여 문서 삭제를 완료합니다.

  1. 문서 검색

검색은 ElasticSearch의 가장 일반적인 기능 중 하나입니다. 다음은 간단한 검색 예입니다.

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'query' => [
            'match' => [
                'title' => 'document'
            ]
        ]
    ]
];
$response = $client->search($params);

위 코드에서 $params 매개변수에는 검색 내용과 검색 방법이 포함되어 있습니다. 그 중 제목은 검색할 필드를 나타내고, 문서는 검색할 내용을 나타냅니다. 마지막으로 search() 메소드를 실행하여 문서 검색을 완료합니다.

  1. Aggregation

ElasticSearch는 검색 외에도 다양한 집계 작업도 지원합니다. 다음은 간단한 집계 예입니다.

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'aggs' => [
            'my_agg' => [
                'terms' => [
                    'field' => 'title'
                ]
            ]
        ]
    ]
];
$response = $client->search($params);

위 코드에서 $params 매개변수에는 집계할 콘텐츠와 집계 방법이 포함되어 있습니다. 그 중 my_agg는 Aggregation의 이름이고, title은 Aggregation할 필드를 의미합니다. 마지막으로 search() 메서드를 실행하여 집계 작업을 완료합니다.

요약

위는 일반적으로 사용되는 PHP 함수 중 ElasticSearch 함수에 대한 소개입니다. 물론 그 밖에도 일괄 추가, 일괄 삭제, 페이징 검색, 복합 집계 등 다양한 작업이 있습니다. 실제 개발에서는 특정 요구 사항에 따라 다양한 운영 방법을 선택해야 합니다. ElasticSearch는 검색 및 집계 분야에서 매우 강력한 기능을 갖추고 있으며, 빅데이터 처리에도 매우 능숙합니다. 많은 PHP 개발자에게 도움이 될 것이라고 믿습니다.

위 내용은 PHP 함수의 ElasticSearch 함수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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