>백엔드 개발 >PHP 튜토리얼 >문서 관리 및 검색을 위해 Elasticsearch와 PHP를 활용하는 방법

문서 관리 및 검색을 위해 Elasticsearch와 PHP를 활용하는 방법

王林
王林원래의
2023-07-08 13:18:25966검색

문서 관리 및 검색에 Elasticsearch와 PHP를 활용하는 방법

개요
Elasticsearch는 강력한 텍스트 검색 및 분석 기능을 갖춘 오픈 소스 분산 검색 엔진입니다. PHP는 웹 개발에 널리 사용되는 널리 사용되는 서버 측 프로그래밍 언어입니다. 이 기사에서는 문서 관리 및 검색을 위해 Elasticsearch와 PHP를 사용하는 방법을 소개하고 독자의 이해와 실습을 돕기 위한 코드 예제를 제공합니다.

Elasticsearch 설치 및 구성
먼저 Elasticsearch를 설치하고 구성해야 합니다. Elasticsearch 공식 웹사이트에서 최신 버전을 다운로드하고 지침에 따라 설치할 수 있습니다. 설치가 완료되면 Elasticsearch에서 클러스터 이름 및 노드 이름 설정과 같은 몇 가지 기본 구성을 수행해야 합니다. 구체적인 구성 방법은 Elasticsearch 공식 문서를 참고하세요.

PHP 클라이언트 설치 및 구성
다음으로 Elasticsearch와 상호 작용하려면 PHP 클라이언트를 설치하고 구성해야 합니다. Elasticsearch에서 공식적으로 제공하는 PHP 클라이언트 - Elasticsearch-PHP(https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/index.html) 사용을 권장합니다. Composer를 사용하여 클라이언트를 설치할 수 있습니다. 명령은 다음과 같습니다.

composer require elasticsearch/elasticsearch

설치가 완료된 후 다음 코드를 사용하여 Elasticsearch에 연결하고 연결이 성공했는지 확인할 수 있습니다.

위 코드에서는 먼저 Elasticsearch-PHP 클라이언트가 도입되었고 Elasticsearch 클라이언트 인스턴스가 생성되었습니다. 그런 다음 이 클라이언트 인스턴스를 사용하여 간단한 쿼리 요청을 보냅니다. 쿼리문의 match_all은 모든 문서가 일치한다는 의미이고, test_index는 쿼리할 인덱스를 의미합니다. 마지막으로 search 메소드를 통해 쿼리 요청을 보내고 쿼리 결과를 출력합니다.

match_all表示匹配所有文档,test_index表示要查询的索引。最后,我们通过search方法发送查询请求,并打印出查询结果。

创建索引和文档
接下来,我们将学习如何创建索引和文档。索引是存储文档的地方,类似于关系数据库中的表。而文档则是实际的数据,类似于关系数据库中的行。可以使用以下代码来创建索引和一个简单的文档:

require 'vendor/autoload.php';

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

$params = [
    'index' => 'test_index',
    'body' => [
        'query' => [
            'match_all' => new stdClass(),
        ],
    ],
];

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

print_r($response);

以上代码中,我们首先使用indices()->create方法创建了一个名为my_index的索引,并指定了一些索引的设置和属性(mapping)。接着,我们使用index方法创建了一个文档,并指定了文档的标题和内容。

搜索文档
有了索引和文档后,我们可以使用Elasticsearch进行搜索。以下是一个简单的搜索示例代码:

$params = [
    'index' => 'my_index',
    'body' => [
        'settings' => [
            'number_of_replicas' => 0,
            'number_of_shards' => 1,
        ],
        'mappings' => [
            'properties' => [
                'title' => [
                    'type' => 'text',
                ],
                'content' => [
                    'type' => 'text',
                ],
            ],
        ],
    ],
];

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

$params = [
    'index' => 'my_index',
    'id' => '1',
    'body' => [
        'title' => 'Elasticsearch入门指南',
        'content' => '本书详细介绍了如何使用Elasticsearch进行文档管理和检索。',
    ],
];

$response = $client->index($params);

以上代码中,我们使用了match查询来搜索标题中包含入门指南的文档。通过打印查询结果,我们可以看到Elasticsearch返回了匹配的文档信息。

更新和删除文档
当需要更新或删除文档时,可以使用以下代码示例:

$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => [
                'title' => '入门指南',
            ],
        ],
    ],
];

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

以上代码中,我们首先使用update方法更新了ID为1的文档的标题。然后,使用delete색인 및 문서 만들기

다음으로 색인 및 문서를 만드는 방법을 알아봅니다. 인덱스는 관계형 데이터베이스의 테이블과 유사하게 문서가 저장되는 위치입니다. 문서는 관계형 데이터베이스의 행과 유사한 실제 데이터입니다. 다음 코드를 사용하여 색인과 간단한 문서를 만들 수 있습니다.

$params = [
    'index' => 'my_index',
    'id' => '1',
    'body' => [
        'doc' => [
            'title' => 'Elasticsearch入门指南(第二版)',
        ],
    ],
];

$response = $client->update($params);

$params = [
    'index' => 'my_index',
    'id' => '1',
];

$response = $client->delete($params);

위 코드에서는 먼저 indices()->create 메서드를 사용하여 라는 파일을 만듭니다. my_index 인덱스이며 일부 인덱스 설정 및 속성(매핑)을 지정합니다. 다음으로 index 메소드를 사용하여 문서를 생성하고 문서의 제목과 내용을 지정합니다.

🎜문서 검색🎜색인과 문서가 준비되면 Elasticsearch를 사용하여 검색할 수 있습니다. 다음은 간단한 검색 예제 코드입니다. 🎜rrreee🎜위 코드에서는 match 쿼리를 사용하여 제목에 Getting Started가 포함된 문서를 검색했습니다. 쿼리 결과를 인쇄하면 Elasticsearch가 일치하는 문서 정보를 반환한 것을 확인할 수 있습니다. 🎜🎜문서 업데이트 및 삭제🎜문서를 업데이트하거나 삭제해야 하는 경우 다음 코드 예제를 사용할 수 있습니다. 🎜rrreee🎜위 코드에서는 먼저 update 메서드를 사용하여 제목을 업데이트합니다. ID가 1인 문서입니다. 그런 다음 delete 메소드를 사용하여 ID 1의 문서를 삭제합니다. 🎜🎜요약🎜본 글의 소개와 코드 예시를 통해 문서 관리 및 검색을 위해 Elasticsearch와 PHP를 사용하는 방법을 배웠습니다. 먼저 Composer를 사용하여 Elasticsearch와 Elasticsearch-PHP 클라이언트를 설치하고 구성해야 합니다. 그런 다음 색인과 문서를 생성하는 방법과 문서를 검색, 업데이트, 삭제하는 방법을 배웠습니다. 이 기사가 독자들이 문서 관리 및 검색을 위해 Elasticsearch와 PHP를 더 잘 이해하고 사용하는 데 도움이 되기를 바랍니다. 🎜

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

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