大神请看
本文不一定写的全部都对,如果有哪里写得不好或者不对,可以提但请不要喷,不喜勿看绕道走就是了,虽然有可能在一些小知识点上会误导小白,但是还是可以看看基础的ES操作,对于使用还是一点帮助的
ES简介
这里不对ES进行介绍,哈哈哈哈哈哈
PHP的ES使用
PHP中使用ES主要通过官方提供的包 elasticsearch/elasticsearch 进行开发,但这个教程不直接使用这个包,用另外一个亲身实践觉得还不错的包 ruflin/elastica 进行开发。
ES版本
本教程的ES版本为7.2,已经没有了type的概念,不一定适用于小于7.2的版本,简单点说就是,把ES比喻成Mysql数据库,有type的时候,index就是一个数据库,type就是数据库的一个个表,这种情况下一个项目中一般只有一个index,多个type;没有type之后,可以把index理解成一个个表,一个项目变成了多个index。
入门步骤
一般来说,我们用ES就是为了做搜索,做搜索我们用得更多的其实是数据库,所以就涉及到以下这些搜索:模糊匹配,精确匹配,类数据的In查询,And查询,Or查询,复合查询,Between查询等等等等....因为ES的查询语法肯定跟Mysql完全不一样,所以我们要看学习一下,还有相关的基础搜索相关的知识。
此处我们先简要介绍一下教程的步骤
- 先简要介绍一下Index的创建与删除,对ES相关的API进行简要介绍并使用 ruflin/elastica 进行代码实现
- 介绍数据(document)与Index的增删改查,也是对ES相关的API进行简要介绍并用代码实现
- 有数据之后,我们要进行查询,第三步就进行简单的查询讲解,这一步通过API来理解整个查询的代码实现是比较简单的,我就是这么搞的
- 介绍一下ES的一些查询认知误区,讲一下分词器和基础的查询规则
- 介绍一下Index的mapping和setting的相关配置,真 · 简单介绍,不会复杂,只教如何配置和修改
ES的官方文档
PHP开发包ruflin/elastica的官方文档
直接使用composer安装ruflin/elastica
composer install "ruflin/elastica" -vvv
复制代码
创建Index,只创建,不进行任何配置
相关的文档
PUT /index名称
不传参
复制代码
代码实现
// 创建ES客户端
$config = [
'host' => '127.0.0.1',
'port' => 9200,
];
$client = new Client($config);
// 创建Index
$indexName = 'test';
$index = $client->getIndex($indexName);
// 如果Index不存在则创建
if (!$index->exists()) {
$index->create();
}
// 到这里就完成了一个最简单的Index创建,tips:插入数据时,如果Index没有创建则会自动创建,后续说到数据插入时再讲一次
复制代码
删除Index
相关的文档
DELETE /index名称
不传参
复制代码
代码实现
// 缩略客户端连接代码
$index = $client->getIndex($indexName);
// 如果Index存在则删除
if ($index->exists()) {
$index->delete();
}
复制代码
本节完
是不是感觉很简单,哈哈哈哈哈哈