PHPackages                             ligenhui/php-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. [Search &amp; Filtering](/categories/search)
4. /
5. ligenhui/php-elasticsearch

ActiveLibrary[Search &amp; Filtering](/categories/search)

ligenhui/php-elasticsearch
==========================

1.0.2(4y ago)04.3k↓25%Apache-2.0PHPPHP &gt;=7.2.5

Since Aug 20Pushed 4y ago1 watchersCompare

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

READMEChangelog (2)Dependencies (1)Versions (4)Used By (0)

php-elasticsearch
=================

[](#php-elasticsearch)

php版本的elasticsearch常用封装

安装
--

[](#安装)

```
composer require ligenhui/php-elasticsearch

```

使用示例
----

[](#使用示例)

```
require 'vendor/autoload.php';

/***************创建连接start***************/

//设置节点一
$config1 = new \Ligenhui\PhpElasticsearch\Config();
$config1->setHost('127.0.0.1')->setPort(9200)->setUser('user1')->setPassword('pass1');

//设置节点二
$config2 = new \Ligenhui\PhpElasticsearch\Config();
$config2->setHost('127.0.0.2')->setPort(9200)->setUser('user2')->setPassword('pass2');

//创建实例
$es = new \Ligenhui\PhpElasticsearch\Elasticsearch([$config1, $config2]);

/***************创建连接end***************/

/***************index操作start***************/

//检查index是否存在
$es->isIndexExists();

//设置index 类似mysql里面的表
$es->setIndex('test');

//获取indices实例
$es->indices();

$map = [
    'properties' => [
        'name' => [
            'type' => 'text',
        ],
        'age' => [
            'type' => 'integer',
        ],
    ]
];
//设置mappings
$es->setMappings($map);

//设置settings
$es->setSettings(['number_of_shards' => 3,'number_of_replicas' => 2]);

//获取mappings
$es->indices()->getMapping();

//获取settings
$es->indices()->getSettings();

//创建索引 创建表
$es->createIndex();

//删除索引 删除表
$es->deleteIndex();

/***************index操作end***************/

/***************数据操作start***************/

//新增数据并设置id值
$es->insert(['name' => 'aa', 'age' => 11],1);

//新增数据不设置id值 es自动生成
$es->insert(['name' => 'aa', 'age' => 11]);

//批量新增数据并设置id值
$es->insertAll([['name' => 'c', 'age' => 3, 'id' => 3],['name' => 'd', 'age' => 4, 'id' => 4]],'id');

//根据id删除一条数据
$es->deleteById(1);

//根据条件删除数据
$es->where('name', 'a')->delete();

//根据id更新一条数据
$es->updateById(['doc' =>['name' => 'ccc','age' => 33]],3);

//根据条件更新数据
$es->where('name','bb')->update(['script' => ['inline' => 'ctx._source.name=params.name;ctx._source.age=params.age','params' => ['name' => 'bbb', 'age' => 333],'lang' => 'painless']]);

//根据id查询数据
$es->get(6);

//设置分页
$es->setPageSize(1)->setScrollSize(10);

//设置正排序
$es->setSortAsc('name');

//设置倒排序
$es->setSortDesc('name');

//设置返回字段
$es->field(['name','age']);

//设置区间查询
$es->setFilterRange('create_time',['gte' => '2020-02-02 12:30:22','lte' => '2021-05-05 12:30:22']);

//设置模糊查询
$es->like(['name','age'],'*aaa*');

//根据条件查询数据
$es->where('name','bbb')->select();

/***************数据操作end***************/

/***************其他start***************/

//获取client实例
$client = $es->client();

//自定义搜索 例如求和
$client->search(['size' => 0, 'index' => 'test', 'body' => ['aggs' => ['age' => ['sum' => ['field' => 'age']]]]]);

//获取返回值 自定义操作的结果不支持 例上
$es->getResponse();

//获取组装数据
$es->getParams();

//获取检索以组装数据
$es->getSearchField();

//前缀查询 例如 查询值为张开头的数据
$es->setMustPrefix('name','张');

//multi_match Fuzzy
$es->setMultiMatchFuzzy(['name'],'张三','and',2);

//must term操作
$es->setMustTerm('name','aaa');

//filter Term
$es->setFilterTerm('name','aaa');

//Filter Match
$es->setFilterMatch('name','aaa');

//Should Match
$es->setShouldMatch('name','aaa');

//Should Term
$es->setShouldTerm('name','aaa');
```

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

3

Last Release

1727d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c16177ca0ee2fc485093b3e8c7a50fcd126b62a4aa3d30de6a842332e5dce9f7?d=identicon)[ligenhui](/maintainers/ligenhui)

---

Top Contributors

[![ligenhui](https://avatars.githubusercontent.com/u/29485983?v=4)](https://github.com/ligenhui "ligenhui (2 commits)")

---

Tags

elasticsearchesphp-elasticsearch

### Embed Badge

![Health badge](/badges/ligenhui-php-elasticsearch/health.svg)

```
[![Health](https://phpackages.com/badges/ligenhui-php-elasticsearch/health.svg)](https://phpackages.com/packages/ligenhui-php-elasticsearch)
```

###  Alternatives

[mailerlite/laravel-elasticsearch

An easy way to use the official PHP ElasticSearch client in your Laravel applications.

934529.3k2](/packages/mailerlite-laravel-elasticsearch)[matchish/laravel-scout-elasticsearch

Search among multiple models with ElasticSearch and Laravel Scout

7431.6M2](/packages/matchish-laravel-scout-elasticsearch)[jeroen-g/explorer

Next-gen Elasticsearch driver for Laravel Scout.

397612.3k](/packages/jeroen-g-explorer)[jsq/amazon-es-php

Support for using IAM authentication with the official Elasticsearch PHP client

9310.6M13](/packages/jsq-amazon-es-php)[babenkoivan/elastic-client

The official PHP Elasticsearch client integrated with Laravel

544.0M6](/packages/babenkoivan-elastic-client)[borales/yii2-elasticsearch-behavior

Yii2 behavior to support Elasticsearch indexing

2110.2k](/packages/borales-yii2-elasticsearch-behavior)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
