PHP中怎么利用ElasticSearch实现搜索
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,PHP中怎么利用ElasticSearch实现搜索,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。安装 elasticse
千家信息网最后更新 2025年01月24日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安全错误
数据库的锁怎样保障安全
微软代理服务器
手机app软件开发上市企业
栖霞管理软件开发
oracle数据库降序
私有云服务器是物理服务器吗
adsl 做服务器
企业级应用软件开发案例
城市按字母定位数据库
网络技术在电子商务中运用
携程网络技术员年薪
兰陵软件开发个是北京分公司
数据库如何返回数据结构
亚马逊注册用云服务器安全吗
ei是线索型工时数据库吗
关于网络安全的简单内容
网络安全的最后一道防线是
企业用的数据库都有哪些
网络技术教学视频全集
冒险岛露西德服务器
数据库原理及应用程序设计
天津服务器批发厂家
seer数据库更新打不开怎么办
网络安全培训主持
浙江项目软件开发优势
社保业务软件开发
天龙八部双线区服务器怎么样
软件开发监理总结报告
承德网络技术费用
深圳市爱卡蒙网络技术有限公司
魔兽 9.0数据库