大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。
本文不一定写的全部都对,如果有哪里写得不好或者不对,可以提但请不要喷,不喜勿看绕道走就是了,虽然有可能在一些小知识点上会误导小白,但是还是可以看看基础的ES操作,对于使用还是一点帮助的
这里不对ES进行介绍,哈哈哈哈哈哈
PHP中使用ES主要通过官方提供的包 elasticsearch/elasticsearch 进行开发,但这个教程不直接使用这个包,用另外一个亲身实践觉得还不错的包 ruflin/elastica 进行开发。
本教程的ES版本为7.2,已经没有了type的概念,不一定适用于小于7.2的版本,简单点说就是,把ES比喻成Mysql数据库,有type的时候,index就是一个数据库,type就是数据库的一个个表,这种情况下一个项目中一般只有一个index,多个type;没有type之后,可以把index理解成一个个表,一个项目变成了多个index。
一般来说,我们用ES就是为了做搜索,做搜索我们用得更多的其实是数据库,所以就涉及到以下这些搜索:模糊匹配,精确匹配,类数据的In查询,And查询,Or查询,复合查询,Between查询等等等等....因为ES的查询语法肯定跟Mysql完全不一样,所以我们要看学习一下,还有相关的基础搜索相关的知识。
此处我们先简要介绍一下教程的步骤
www.elastic.co/guide/en/el…
elastica.io/
直接使用composer安装ruflin/elastica
composer install "ruflin/elastica" -vvv
相关的文档
www.elastic.co/guide/cn/el…
www.elastic.co/guide/en/el…
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没有创建则会自动创建,后续说到数据插入时再讲一次
相关的文档
www.elastic.co/guide/cn/el…
www.elastic.co/guide/en/el…
DELETE /index名称
不传参
代码实现
// 缩略客户端连接代码
$index = $client->getIndex($indexName);
// 如果Index存在则删除
if ($index->exists()) {
$index->delete();
}
是不是感觉很简单,哈哈哈哈哈哈