PHP와 Elasticsearch를 사용하여 검색 결과를 강조 표시하는 방법

WBOY
풀어 주다: 2023-07-17 21:26:01
원래의
1195명이 탐색했습니다.

PHP 및 Elasticsearch를 사용하여 강조된 검색 결과를 얻는 방법

소개:
현대 인터넷 세계에서 검색 엔진은 사람들이 정보를 얻는 주요 방법이 되었습니다. 검색 결과의 가독성과 사용자 경험을 향상시키기 위해 검색 키워드를 강조하는 것이 일반적인 요구 사항이 되었습니다. 이 기사에서는 PHP와 Elasticsearch를 사용하여 강조된 검색 결과를 얻는 방법을 소개합니다.

1. 준비
시작하기 전에 PHP와 Elasticsearch가 올바르게 설치 및 구성되었는지 확인해야 합니다. Composer를 사용하여 PHP 종속성을 관리한 후 다음 명령을 사용하여 Elasticsearch의 PHP 클라이언트를 설치할 수 있습니다.

composer require elasticsearch/elasticsearch
로그인 후 복사

2. Elasticsearch에 연결
먼저 PHP 스크립트에서 Elasticsearch 클라이언트 인스턴스를 생성해야 합니다. 다음 코드를 사용하여 Elasticsearch에 연결할 수 있습니다.

require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()->build();
로그인 후 복사

3. 인덱스 및 매핑 생성
검색하기 전에 Elasticsearch가 검색 요청을 올바르게 처리할 수 있도록 인덱스를 생성하고 해당 필드 매핑을 지정해야 합니다. 다음은 인덱스 및 매핑을 생성하는 샘플 코드입니다.

$params = [
    'index' => 'my_index',
    'body' => [
        'mappings' => [
            'properties' => [
                'title' => [
                    'type' => 'text',
                    'fields' => [
                        'keyword' => [
                            'type' => 'keyword',
                        ],
                    ],
                ],
                'content' => [
                    'type' => 'text',
                    'fields' => [
                        'keyword' => [
                            'type' => 'keyword',
                        ],
                    ],
                ],
            ],
        ],
    ],
];

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

넷째, 검색을 수행하고 결과를 강조 표시합니다.
다음으로 검색 작업을 수행하고 일치하는 키워드를 강조 표시할 수 있습니다. 다음은 검색을 수행하고 결과를 강조 표시하는 샘플 코드입니다.

$params = [
    'index' => 'my_index',
    'body' => [
        'query' => [
            'match' => [
                'title' => '关键字',
            ],
        ],
        'highlight' => [
            'fields' => [
                'title' => new stdClass(),
                'content' => new stdClass(),
            ],
        ],
    ],
];

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

foreach ($response['hits']['hits'] as $hit) {
    $title = isset($hit['highlight']['title'][0]) ? $hit['highlight']['title'][0] : $hit['_source']['title'];
    $content = isset($hit['highlight']['content'][0]) ? $hit['highlight']['content'][0] : $hit['_source']['content'];

    echo "标题:{$title}
";
    echo "内容:{$content}

";
}
로그인 후 복사

위 코드는 Elasticsearch를 통해 키워드 기반 검색을 수행하고 일치하는 필드를 강조 표시합니다. 검색 결과에서 특정 필드에 일치하는 키워드가 있으면 해당 필드에 대해 강조 표시된 결과가 반환됩니다.

결론:
이 글에서는 PHP와 Elasticsearch를 사용하여 강조된 검색 결과를 얻는 방법을 소개합니다. 적절한 인덱싱 및 매핑을 설정하고 관련 검색 매개변수를 사용하면 검색 결과를 쉽게 강조할 수 있습니다. 이는 의심할 여지 없이 검색 결과에 대한 사용자의 이해와 읽기를 향상시켜 사용자 경험을 향상시킬 것입니다.

참조:

  • Elasticsearch 공식 문서: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

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

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