Elasticsearch는 대규모 데이터를 효율적으로 저장하고 쿼리 할 수있는 강력한 분산 된 전체 텍스트 검색 엔진입니다. IK 워드 세그먼터는 중국어를 위해 특별히 설계되었으며, 중국어 어휘의 특성을 완전히 활용하여 단어 단어를 정확하게 사용하여 검색 품질을 향상시킵니다.
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.yml을 편집하고 요구 사항에 따라 클러스터 이름, 노드 이름 및 청취 주소를 설정하십시오.
cluster.name: my_cluster
node.name: my_node
network.host: localhost
http.port: 9200
PHP 프로젝트에서 Elasticsearch를 사용하려면 공식 PHP 클라이언트를 설치해야합니다.
composer require elasticsearch/elasticsearch
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
elasticsearch.yml 에 다음 분석기 구성을 추가하십시오.
index.analysis.analyzer.default.type: "ik_max_word"
index.analysis.analyzer.default.use_smart: "false"
다음 예는 전체 텍스트 검색에 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 환경에서 전체 텍스트 검색 기능을 실현하는 방법을 체계적으로 소개합니다. 합리적인 구성 및 코드 예제를 통해 개발자는 효율적인 검색 서비스를 신속하게 구축 할 수 있습니다.