PHP中怎么利用ElasticSearch实现搜索
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,PHP中怎么利用ElasticSearch实现搜索,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。安装 elasticse
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
金凤区网络安全侦测
摩尔庄园的服务器怎么不一样
java 检测数据库表
国家网络安全宣传脚本
腾讯云服务器安全认证
什么型号路由器有虚拟服务器功能
g8024u报警管理服务器
网络安全协议的核心功能
长沙网络安全系统公司
电子信息和网络安全哪个好
中核集团网络安全 2019
北京中储物流网络技术有限公司
数据库odbc编程
有哪些青年软件开发者
一台服务器搭建多台云电脑
软件开发算法思维
apex服务器升级失败
云南中奇互联网科技有限公司
虎丘区正规服务器代理厂家
php是服务器端脚本语言吗
我的世界ps4服务器
微星b75支持服务器内存吗
中专学历学软件开发好就业吗
爱思助手服务器缺点
服务器dns填写教程
济南做网络安全的公司
查询星环数据库所有表
电力公司违反网络安全事例
黑龙江祥正网络技术公司
实验四 数据库安全