PHP Elastic Search 검색 인 스 턴 스 설명

4930 단어 PHPElasticSearch
ElasticSearch 는 Lucene 기반 검색 서버 입 니 다.RESTful 웹 인 터 페 이 스 를 기반 으로 분포 식 다 중 사용자 능력 의 전문 검색엔진 을 제공 합 니 다.Elasticsearch 는 자바 로 개발 되 었 으 며 아파 치 라이선스 조항 에 따 른 오픈 소스 로 발 표 된 현재 유행 하 는 기업 급 검색엔진 입 니 다.디자인 은 클 라 우 드 컴 퓨 팅 에 사용 되 고 실시 간 검색,안정,신뢰성,신속,설치 와 사용 이 편리 합 니 다.
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 를 기반 으로 검색 한 상세 한 내용 입 니 다.저희 가 정리 한 내용 이 여러분 에 게 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기