PHP Elastic Search 검색 인 스 턴 스 설명
4930 단어 PHPElasticSearch
PHP 는 Elastic Search 를 기반 으로 검색 합 니 다.
검색 을 하면 서 ElasticSearch 를 생각 했 고 PHP 도 지원 하기 때문에 간단 한 예 를 들 어 테스트 를 했 습 니 다.괜 찮 은 것 같 습 니 다.기록 을 해 보 세 요.
환경.
php 7.2
elasticsearch 6.2 다운로드
elasticsearch-php 6 다운로드
elasticsearch 설치
원본 파일 을 다운로드 하고 압축 을 풀 고 사용 자 를 다시 만 듭 니 다.디 렉 터 리 의 소속 그룹 을 이 사용자 로 수정 합 니 다.elasticsearch 는 루트 사용자 로 시작 할 수 없 기 때 문 입 니 다.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gz
tar zxvf elasticsearch-6.2.3.tar.gz
useradd elasticsearch
password elasticsearch
chown elasticsearch:elasticsearch elasticsearch-6.2.3
cd elasticsearch-6.2.3
./bin/elasticsearch //
PHP 확장 설치여기 서 사용 하 는 것 은 coposer 설치 elasticsearch-phop 입 니 다.composer.json 파일 에"elasticsearch/elasticsearch":"~6.0"을 추가 하여 composer update 를 실행 합 니 다.
{
"require": {
// ...
"elasticsearch/elasticsearch": "~6.0"
// ...
}
}
테스트 예테이블 생 성 및 테스트 데이터
저 는 여기 서 글 표를 준비 하여 테스트 를 했 습 니 다.먼저 표를 만 들 고 그 다음 에 테스트 데 이 터 를 기록 하 며 준비 작업 이 끝 난 후에 테스트 사례 를 편집 하기 시 작 했 습 니 다.
create table articles(
id int not null primary key auto_increment,
title varchar(200) not null comment ' ',
content text comment ' '
);
insert into articles(title, content) values ('Laravel 1', 'Laravel 1'),
('Laravel 2', 'Laravel 2'),
('Laravel 3', 'Laravel 3');
Mysql 에서 데이터 읽 기
try {
$db = new PDO('mysql:host=127.0.0.1;dbname=test', 'root', 'root');
$sql = 'select * from articles';
$query = $db->prepare($sql);
$query->execute();
$lists = $query->fetchAll();
print_r($lists);
} catch (Exception $e) {
echo $e->getMessage();
}
실례 화
require './vendor/autoload.php';
use Elasticsearch\ClientBuilder;
$client = ClientBuilder::create()->build();
색인 은 MySQL 의 표 에 해당 하고 문 서 는 MySQL 의 줄 기록 에 해당 합 니 다.elasticsearch 의 동적 특성 은 첫 번 째 문 서 를 추가 할 때 자동 으로 색인 과 기본 설정 을 만 듭 니 다.
문 서 를 색인 에 추가 합 니 다.
foreach ($lists as $row) {
$params = [
'body' => [
'id' => $row['id'],
'title' => $row['title'],
'content' => $row['content']
],
'id' => 'article_' . $row['id'],
'index' => 'articles_index',
'type' => 'articles_type'
];
$client->index($params);
}
색인 에서 문서 가 져 오기
$params = [
'index' => 'articles_index',
'type' => 'articles_type',
'id' => 'articles_1'
];
$res = $client->get($params);
print_r($res);
색인 에서 문서 삭제
$params = [
'index' => 'articles_index',
'type' => 'articles_type',
'id' => 'articles_1'
];
$res = $client->delete($params);
print_r($res);
색인 삭제
$params = [
'index' => 'articles_index'
];
$res = $client->indices()->delete($params);
print_r($res);
색인 생 성
$params['index'] = 'articles_index';
$params['body']['settings']['number_of_shards'] = 2;
$params['body']['settings']['number_of_replicas'] = 0;
$client->indices()->create($params);
수색 하 다.
$params = [
'index' => 'articles_index',
'type' => 'articles_type',
];
$params['body']['query']['match']['content'] = 'Laravel';
$res = $client->search($params);
print_r($res);
이상 은 PHP 가 ElasticSearch 를 기반 으로 검색 한 상세 한 내용 입 니 다.저희 가 정리 한 내용 이 여러분 에 게 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.