本文参考文档:
es7.3文档
全文搜索引擎 Elasticsearch 入门教程
基础介绍
全文搜索属于最常见的需求,开源的 Elasticsearch是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。
安装
不同环境下安装方式不同,可以采用下载安装包,apt-get,yum安装等各种方法,在wsl下linux安装需要注意,wsl下的Linux系统没有使用systemd,可以尝试用SysV init的命令代替systemd,或者安装systemd命令
安装完后直接执行curl localhost:9200可以获取到es基本信息,例如我执行后结果如下:
{
"name" : "MS-RWTYITLHLCWO",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "j9WVJcIFRq6bEa3bwXCARA",
"version" : {
"number" : "7.15.2",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "93d5a7f6192e8a1a12e154a2b81bf6fa7309da0c",
"build_date" : "2021-11-04T14:04:42.515624022Z",
"build_snapshot" : false,
"lucene_version" : "8.9.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
使用
引入包
正常通过Restful API方式使用在各个文档中都有详细介绍,在此省略,说一下在php中如何使用。
在laravel或yii2等主流框架中都有自己使用es的包,例如yiisoft/yii2-elasticsearch或basemkhirat/elasticsearch等等,但假设使用的是自研框架呢?
目前我使用的是基于swoole开发的自研框架,引入了elasticsearch/elasticsearch包,在composer require elasticsearch/elasticsearch时,会自动根据php版本引入包
配置
连接池
index:索引是文档的容器,是一类文档的集合 type:可以理解成关系数据库中Table,不建议使用 Document:Index 里面单条的记录称为Document(文档)。等同于关系型数据库表中的行。 id:Doc的主键。在写入的时候,可以指定该Doc的ID值,如果不指定,则系统自动生成一个唯一的UUID值。 body endpoint