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

WBOY
풀어 주다: 2023-07-18 21:14:01
원래의
1166명이 탐색했습니다.

PHP와 Elasticsearch를 이용한 다중 조건 검색 구현 방법

소개:
웹 개발에서 검색 기능은 없어서는 안되는 부분입니다. 보다 정확하고 유연한 검색 결과를 제공하기 위해 일반적으로 다중 조건 검색을 구현해야 합니다. 이 기사에서는 PHP와 Elasticsearch를 사용하여 다중 조건 검색을 구현하는 방법을 소개합니다. Elasticsearch의 기본 개념을 소개하고 이 프로세스를 이해하고 실습하는 데 도움이 되는 코드 예제를 제공합니다.

1부: Elasticsearch 개요
Elasticsearch는 대용량 데이터를 빠르게 저장, 검색, 분석할 수 있는 오픈 소스 분산 검색 및 분석 엔진입니다. Elasticsearch를 사용하면 강력한 검색 기능을 쉽게 구현하고 고성능 검색 결과를 제공할 수 있습니다.

파트 2: 인덱싱
검색하기 전에 먼저 데이터를 인덱싱해야 합니다. 인덱스는 각각 필드 집합으로 구성된 문서 모음입니다. 이 예에서는 "products"라는 인덱스를 사용하여 제품 정보를 저장합니다.

인덱스를 생성하는 PHP 코드는 다음과 같습니다.

require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()->build();

$params = [
    'index' => 'products',
    'body' => [
        'settings' => [
            'number_of_shards' => 1,
            'number_of_replicas' => 0
        ],
        'mappings' => [
            'properties' => [
                'name' => [
                    'type' => 'text',
                    'analyzer' => 'ik_max_word',
                ],
                'price' => [
                    'type' => 'integer'
                ],
                'category' => [
                    'type' => 'keyword'
                ]
            ]
        ]
    ]
];

$response = $client->indices()->create($params);
로그인 후 복사

위 코드에서는 Elasticsearch의 PHP 클라이언트 라이브러리를 사용했습니다. 먼저 새 클라이언트 인스턴스를 설정합니다. 그런 다음 인덱스에 대한 설정 및 매핑 정보를 정의하고 indices()->create() 메서드를 호출하여 인덱스를 생성합니다. indices()->create()方法来创建索引。

第三部分:添加文档
在建立索引后,我们需要将实际的数据添加到Elasticsearch中。以下是一个添加产品文档的示例代码:

$params = [
    'index' => 'products',
    'body' => [
        'name' => 'iPhone 12',
        'price' => 9999,
        'category' => '手机'
    ]
];

$response = $client->index($params);
로그인 후 복사

在这段代码中,我们指定了索引名称和要添加的文档。我们只需将文档的字段和对应的值传递给index()方法即可。

第四部分:进行多条件搜索
一旦数据成功添加到Elasticsearch中,我们就可以开始进行多条件搜索。以下是一个使用PHP和Elasticsearch进行多条件搜索的示例代码:

$params = [
    'index' => 'products',
    'body' => [
        'query' => [
            'bool' => [
                'must' => [
                    ['match' => ['name' => 'iPhone']],
                    ['range' => ['price' => ['gte' => 5000]]],
                    ['term' => ['category' => '手机']]
                ]
            ]
        ]
    ]
];

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

$results = $response['hits']['hits'];
로그인 후 복사

在这个示例代码中,我们首先创建了一个查询结构,通过matchrangeterm来定义了多个查询条件。然后,我们通过search()方法将查询参数传递给Elasticsearch,并获取搜索结果。

最后,我们将搜索结果存储在$results

3부: 문서 추가

인덱싱 후에는 실제 데이터를 Elasticsearch에 추가해야 합니다. 다음은 제품 문서를 추가하는 샘플 코드입니다.
rrreee

이 코드에서는 추가할 인덱스 이름과 문서를 지정합니다. 문서의 필드와 해당 값을 index() 메서드에 전달하기만 하면 됩니다. 🎜🎜4부: 다중 기준 검색 수행🎜 데이터가 Elasticsearch에 성공적으로 추가되면 다중 기준 검색 수행을 시작할 수 있습니다. 다음은 PHP와 Elasticsearch를 사용한 다중 조건 검색용 샘플 코드입니다. 🎜rrreee🎜 이 샘플 코드에서는 먼저 match, range 및 term을 사용하세요. 그런 다음 search() 메서드를 통해 쿼리 매개변수를 Elasticsearch에 전달하고 검색 결과를 얻습니다. 🎜🎜마지막으로 검색 결과를 $results 배열에 저장하며 필요에 따라 추가로 처리하고 표시할 수 있습니다. 🎜🎜결론: 🎜PHP와 Elasticsearch를 사용하면 다중 조건 검색 기능을 구현하여 사용자에게 보다 정확하고 유연한 검색 결과를 제공할 수 있습니다. 이 기사에서는 Elasticsearch의 기본 개념을 소개하고 코드 예제를 통해 문서를 색인화하고 추가하고 다중 기준 검색을 수행하는 방법을 보여주었습니다. 이 기사가 유용한 정보와 지침을 제공하여 다기준 검색 기술을 더 잘 이해하고 적용할 수 있기를 바랍니다. 🎜

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!