PHP中怎么利用ElasticSearch实现搜索
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,PHP中怎么利用ElasticSearch实现搜索,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。安装 elasticse
千家信息网最后更新 2026年11月01日PHP中怎么利用ElasticSearch实现搜索
PHP中怎么利用ElasticSearch实现搜索,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
安装 elasticsearch
下载源文件,解压,重新建一个用户,将目录的所属组修改为此用户,因为 elasticsearch 无法用 root 用户启动。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.tar.gztar zxvf elasticsearch-6.2.3.tar.gzuseradd elasticsearchpassword elasticsearchchown elasticsearch:elasticsearch elasticsearch-6.2.3cd elasticsearch-6.2.3./bin/elasticsearch // 启动
安装 PHP 扩展
我这里使用的是 composer 安装 elasticsearch-php。在 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);
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
测试
索引
内容
文档
文章
数据
用户
搜索
准备
帮助
清楚
为此
例子
动态
名词
名词解释
实例
对此
性质
所属
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海喔噻互联网科技有限公司
上海卓越科技互联网
互联网电商科技
互联网和科技创新
互联网是不是新科技
北京互联网科技有限公司
互联网科技小贷
凡科互联网科技
云电互联网科技
菲比寻常互联网科技
互联网科技类展会
晓花互联网科技有限公司网址
辽宁互联网新科技
互联网科技研发水平
长沙互联网科技
滨湖区互联网智能科技产品有哪些
工业互联网山东科技大学
互联网硬科技公司
互联网科技平台产品运营
互联网科技创业计划的风险分析
上海喔噻互联网科技有限公司
互联网科技官网
唐信互联网科技 大连
天扬科技互联网广告
盛创互联网科技有限公司
科技大学互联网专业好不好
青岛中康互联网医疗科技有限公司
电子商务与互联网科技的关系
工业互联网科技成果转化
安徽九吞吴互联网科技有限公司