funphp/elasticsearch 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

funphp/elasticsearch

最新稳定版本:1.1.7

Composer 安装命令:

composer require funphp/elasticsearch

包简介

An Elasticsearch query package

README 文档

README

一个基于elasticsearch/elasticsearch简易的Elasticsearch工具包, 对Document 的查询操作进行了简单的封装.

安装

composer require funphp/elasticsearch

使用

引入相关搜索类

在你需要搜索的类中添加 \Funphp\Elasticsearch\Searchable trait, 就可以使用相关的搜索操作了.

通过 searchableIndex()方法, 就可以指定index了.

namespace Start;

use Funphp\Elasticsearch\Searchable;

Class User{
    use Searchable;
    
    public function searchableIndex(): string
    {
        return 'index-user';
    }
}

查询文档

根据指定id查询

self::searchable()
    ->searchableId('test-id')
    ->search();

term

self::searchable()
    ->query(function (Query $query) {
        $query->term('status', 1);
    })
    ->search();

match

self::searchable()
    ->query(function (Query $query) {
        $query->match('name', '乌拉');
    })
    ->search();

ids

self::searchable()
    ->query(function (Query $query) {
        $query->ids([1, 2]);
    })
    ->search();

range

self::searchable()
    ->query(function (Query $query) {
        $query->range('age', function (Range $range) {
            $range->gte(20);
        });
    })
    ->search();

bool

must

self::searchable()
    ->query(function (Query $query) {
        $query->bool(function (BoolQuery $boolQuery) {
            $boolQuery->must(function (Query $query) {
                $query->range('login_at', function (Range $range) {
                    $range->gte('2021-10-01 00:00:00');
                });
            })->must(function (Query $query) {
                $query->range('age', function (Range $range) {
                    $range->lt(18)->gte(12);
                });
            });
        });
    })
    ->sort(fn(Sort $sort) => $sort->sortBy('age'))
    ->search();

must_not

self::searchable()
    ->query(function (Query $query) {
        $query->bool(function (BoolQuery $boolQuery) {
            $boolQuery->mustNot(function (Query $query) {
                $query->exists('comments');
            });
        });
    })
    ->from(10)
    ->size(10)
    ->source(['id', 'title', 'content'])
    ->search();
  • filter should用法与must相同

source

你可以使用`source` 来指定查询的列

对于分页查询,你可以使用`from`和`size`方法来实现.

aggs

self::searchable()
    ->query(function (Query $query) {
        $query->term('status', $status);
    })->aggs(function (Aggregation $aggregation) {
        $aggregation->valueCount('count', 'id')
            ->max('max', 'value')
            ->sum('sum', 'value');
    })->search();

统计信息

  • 总下载量: 57
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-07-14

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固