현재 위치: > 최신 기사 목록> PHP 환경에서 IK 워드 세그먼트와 결합하여 효율적인 중국어 전체 텍스트 검색을 달성하기 위해 Elasticsearch

PHP 환경에서 IK 워드 세그먼트와 결합하여 효율적인 중국어 전체 텍스트 검색을 달성하기 위해 Elasticsearch

gitbox 2025-08-06

소개

Elasticsearch는 대규모 데이터를 효율적으로 저장하고 쿼리 할 수있는 강력한 분산 된 전체 텍스트 검색 엔진입니다. IK 워드 세그먼터는 중국어를 위해 특별히 설계되었으며, 중국어 어휘의 특성을 완전히 활용하여 단어 단어를 정확하게 사용하여 검색 품질을 향상시킵니다.

Elasticsearch 설치 및 구성

Elasticsearch를 설치하십시오

Elasticsearch 공식 웹 사이트에서 해당 운영 체제의 설치 패키지를 다운로드하고 설치 단계에 따라 배포를 완료 할 수 있습니다.

 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz

tar -zxvf elasticsearch-7.10.2-linux-x86_64.tar.gz

cd elasticsearch-7.10.2/bin

./elasticsearch

Elasticsearch를 구성하십시오

구성 파일 elasticsearch.yml을 편집하고 요구 사항에 따라 클러스터 이름, 노드 이름 및 청취 주소를 설정하십시오.

 cluster.name: my_cluster

node.name: my_node

network.host: localhost

http.port: 9200

PHP 환경 구성

PHP 프로젝트에서 Elasticsearch를 사용하려면 공식 PHP 클라이언트를 설치해야합니다.

 composer require elasticsearch/elasticsearch

IK 워드 세그먼터 플러그인을 설치하십시오

IK 워드 세그먼트는 중국어 단어 세분화를 지원하며 설치 명령은 다음과 같습니다.

 cd elasticsearch-7.10.2/

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.10.2/elasticsearch-analysis-ik-7.10.2.zip

IK 워드 세그먼트를 구성하십시오

elasticsearch.yml 에 다음 분석기 구성을 추가하십시오.

 index.analysis.analyzer.default.type: "ik_max_word"

index.analysis.analyzer.default.use_smart: "false"

전체 텍스트 검색을 구현하는 PHP 코드

다음 예는 전체 텍스트 검색에 PHP 클라이언트를 사용하는 방법을 보여줍니다.

 $hosts = ['http://localhost:9200'];

$client = Elasticsearch\ClientBuilder::create()->setHosts($hosts)->build();

$params = [

    'index' => 'my_index',

    'body'  => [

        'query' => [

            'match' => [

                'content' => '키워드'

            ]

        ]

    ]

];

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

$results = $response['hits']['hits'];

위의 코드는 Elasticsearch 클라이언트를 생성하고 쿼리 매개 변수를 빌드하고 검색을 실행하며 최종적으로 일치하는 결과를 얻습니다.

요약

이 기사에서는 Elasticsearch와 IK Word Segmenter를 결합하여 PHP 환경에서 전체 텍스트 검색 기능을 실현하는 방법을 체계적으로 소개합니다. 합리적인 구성 및 코드 예제를 통해 개발자는 효율적인 검색 서비스를 신속하게 구축 할 수 있습니다.