贺胖娇的编程之旅......

php下es基本使用

2021.11.20

本文参考文档:
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

发表评论