PHPackages                             xiaosongshu/elasticsearch - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. xiaosongshu/elasticsearch

ActiveLibrary[API Development](/categories/api)

xiaosongshu/elasticsearch
=========================

an elasticsearch sdk for php.

v2.0.5(6mo ago)3203mitPHPPHP &gt;=7.3.0

Since Jul 26Pushed 6mo ago1 watchersCompare

[ Source](https://github.com/2723659854/elasticsearch)[ Packagist](https://packagist.org/packages/xiaosongshu/elasticsearch)[ RSS](/packages/xiaosongshu-elasticsearch/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (19)Used By (0)

elasticsearch 客户端
-----------------

[](#elasticsearch-客户端)

### 简介

[](#简介)

 本客户端旨在降低elasticsearch的上手难度，依赖于官方的客户端插件`elasticsearch/elasticsearch`。直接使用官方客户端需要手动构建复杂的请求体， 稍微有一点错误，操作结果就不对。所以单独构建一个依赖官方客户端的插件，用户只需要传入关键字即可，后面增加了类似于关系型数据库 的链式操作方法，用起来更简单一些。当然，本插件只能满足一些常用的功能需求，较为复杂的需求仍然需要手动构建请求体，你可以使用本插件 直接调用官方客户端的方法。

### 注意

[](#注意)

根据elasticsearch安全策略需求，若你安装的elasticsearch8以下，请使用v1.0.9及以下版本，若你安装的elasticsearch8及以上版本，请使用v1.1.0及以上版本。

### 客户端安装方法

[](#客户端安装方法)

```
composer require xiaosongshu/elasticsearch
```

### elasticsearch服务配置

[](#elasticsearch服务配置)

```
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.17.7

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "xpack.security.enabled=false" -e "xpack.security.http.ssl.enabled=false" elasticsearch:8.15.0
```

兼容elasticsearch v8.15.5版本，高版本需要使用账号密码，账号为`elastic`密码为`123456`端口号为`9201`，可以根据自己的实际需求调整配置。

```
docker run -d --name my-es -p 9201:9200 -p 9301:9300 -e "discovery.type=single-node" -e "ELASTIC_PASSWORD=123456" -e "xpack.security.enabled=true" elasticsearch:8.15.5
```

如果是多个服务之间调用，可能需要创建网络

```
# 创建默认的网络桥接
docker network create default_network
# 创建网络
docker network create shared_network
# 将Elasticsearch容器加入网络（假设容器名为my-es，根据实际修改）
docker network connect shared_network my-es
# 将PHP容器加入网络（假设容器名为your_php_container_name，根据实际修改）
docker network connect shared_network your_php_container_name
```

### 关于IK分词器

[](#关于ik分词器)

参考 加入Ik分词器的方法：[https://blog.csdn.net/weixin\_44364444/article/details/125758975](https://blog.csdn.net/weixin_44364444/article/details/125758975)

### 基本配置

[](#基本配置)

支持thinkPHP，laravel，webman等常用框架，需要创建配置文件elasticsearch.php ，放到config/目录下。 配置内容如下所示：

```
return [
   /** 节点列表 */
   'nodes' => ['127.0.0.1:9200'],
   /** 用户名 */
   'username'=>'',
   /** 密码 */
   'password'=>'',
];
```

### 基本用法

[](#基本用法)

实例化客户端

```
$client = new \Xiaosongshu\Elasticsearch\ESClient();
```

### 使用方法

[](#使用方法)

```
