다중 필드 결합 쿼리를 구현하기 위해 PHP Elasticsearch를 사용하는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-09-13 14:08:02
원래의
1027명이 탐색했습니다.

如何使用php Elasticsearch实现多字段组合查询?

다중 필드 결합 쿼리를 구현하기 위해 PHP Elasticsearch를 사용하는 방법은 무엇입니까?

소개:
Elasticsearch는 Lucene을 기반으로 하는 분산 오픈 소스 검색 엔진으로 빠르고 안정적인 전체 텍스트 검색 기능을 제공하며 대규모 데이터의 저장, 검색 및 분석을 지원합니다. 이 기사에서는 다양한 검색 요구 사항을 더 잘 충족하기 위해 PHP Elasticsearch 라이브러리를 사용하여 다중 필드 결합 쿼리를 구현하는 방법을 살펴보겠습니다.

1. Elasticsearch 설치 및 구성
php Elasticsearch 라이브러리를 사용하려면 먼저 Elasticsearch를 설치하고 구성해야 합니다. 공식 웹사이트에서 Elasticsearch를 다운로드하여 설치하고 실행되는지 확인할 수 있습니다.

2. php Elasticsearch 라이브러리 설치
Composer를 사용하여 php Elasticsearch 라이브러리를 설치할 수 있습니다. 프로젝트 루트 디렉터리에 작곡가.json 파일을 만들고 다음 콘텐츠를 추가합니다.

{
"require": {

"elasticsearch/elasticsearch": "^7.0"
로그인 후 복사

}
}
그런 다음 명령줄에서 다음 명령을 실행하여 라이브러리를 설치합니다.
composer install

Three , Elasticsearch에 연결
다음으로, PHP 코드에서 Elasticsearch에 연결할 클라이언트를 생성합니다. 파일 시작 부분에 다음 코드를 추가합니다.

require 'vendor/autoload.php';

$client = new ElasticsearchClient()

4. 인덱스 생성
검색할 데이터를 인덱스에 저장합니다. 여기서 책 정보를 저장하고 싶다고 가정해 보겠습니다. PHP 코드에 다음 코드 조각을 추가하세요:

$params = [

'index' => 'books',
'body' => [
    'mappings' => [
        'properties' => [
            'title' => [
                'type' => 'text'
            ],
            'author' => [
                'type' => 'text'
            ],
            'category' => [
                'type' => 'keyword'
            ]
        ]
    ]
]
로그인 후 복사

];

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

이렇게 하면 다음과 같은 파일이 생성됩니다. "책"의 색인을 생성하고 "제목", "저자" 및 "범주"의 세 가지 필드를 정의합니다.

5. 문서 추가
검색할 문서를 색인에 추가하세요. PHP 코드에 다음 코드 조각을 추가합니다.

$params = [

'index' => 'books',
'id' => '1',
'body' => [
    'title' => 'The Great Gatsby',
    'author' => 'F. Scott Fitzgerald',
    'category' => 'Fiction'
]
로그인 후 복사

];

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

6. 다중 필드 조합 쿼리를 실행합니다
이제 준비가 되었습니다. 이제 다중 필드 조합 쿼리를 수행할 시간입니다. PHP 코드에 다음 코드 조각을 추가합니다.

$params = [

'index' => 'books',
'body' => [
    'query' => [
        'bool' => [
            'must' => [
                ['match' => ['title' => 'great']],
                ['match' => ['author' => 'fitzgerald']]
            ]
        ]
    ]
]
로그인 후 복사

];

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

위 코드에서는 bool 쿼리를 사용하여 다중 필드 조합 쿼리. must 절에서는 "제목" 필드와 "저자" 필드를 각각 일치시키기 위해 두 개의 일치 절을 사용합니다. 즉, 두 조건을 모두 충족하는 문서만 검색됩니다.

7. 검색 결과 처리
검색 결과에는 쿼리 조건을 충족하는 모든 문서가 포함됩니다. 검색 결과를 처리하려면 PHP 코드에 다음 코드 조각을 추가하세요.

foreach ($response['hits']['hits'] as $hit) {

echo $hit['_source']['title'];
echo $hit['_source']['author'];
echo $hit['_source']['category'];
echo "
로그인 후 복사

";
}

8. 요약
In 이 기사에서는 php Elasticsearch 라이브러리를 사용하여 다중 필드 결합 쿼리를 구현하는 방법, Elasticsearch 설치 및 구성, php Elasticsearch 라이브러리 설치, Elasticsearch에 연결, 인덱스 생성, 문서 추가 및 다중 필드 수행 단계를 논의했습니다. php Elasticsearch 라이브러리를 사용하여 결합된 쿼리를 사용하면 Elasticsearch를 쉽게 조작하고 다양한 검색 요구 사항을 충족할 수 있습니다.

코드 샘플 개요.PNG
위는 php Elasticsearch를 사용하여 다중 필드 조합 쿼리를 구현하는 방법에 대한 자세한 단계와 샘플 코드입니다.

도움이 되길 바랍니다.

위 내용은 다중 필드 결합 쿼리를 구현하기 위해 PHP Elasticsearch를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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