承接 saxulum/saxulum-elasticsearch-querybuilder 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

saxulum/saxulum-elasticsearch-querybuilder

最新稳定版本:3.3.0

Composer 安装命令:

composer require saxulum/saxulum-elasticsearch-querybuilder

包简介

A query builder for elasticsearch

README 文档

README

Build Status Total Downloads Latest Stable Version Scrutinizer Code Quality Code Coverage

Features

  • A simple to use, flexible query builder for elastic search.

Requirements

  • php: ~7.0

Suggests

  • saxulum/saxulum-elasticsearch-querybuilder-generator: ~1.0

Installation

Through Composer as saxulum/saxulum-elasticsearch-querybuilder.

composer require saxulum/saxulum-elasticsearch-querybuilder "~3.3"

Usage

Important: By default empty nodes get not serialized. NullNode forces null value serialization.

  • ArrayNode (no elements)
  • BoolNode (null)
  • ObjectNode (no elements)
  • FloatNode (null)
  • IntNode (null)
  • StringNode (null)

This works recursive, which means theoretically a complex query builder can lead into an empty string as json query.

Check the allowSerializeEmpty argument to prevent this if needed.

QueryBuilder

use Saxulum\ElasticSearchQueryBuilder\Node\ArrayNode;
use Saxulum\ElasticSearchQueryBuilder\Node\FloatNode;
use Saxulum\ElasticSearchQueryBuilder\Node\IntNode;
use Saxulum\ElasticSearchQueryBuilder\Node\ObjectNode;
use Saxulum\ElasticSearchQueryBuilder\Node\StringNode;

$qb = ObjectNode::create()
    ->add('query', ObjectNode::create()
        ->add('bool', ObjectNode::create()
            ->add('must', ObjectNode::create()
                ->add('term', ObjectNode::create()
                    ->add('user', StringNode::create('kimchy'))
                )
            )
            ->add('filter', ObjectNode::create()
                ->add('term', ObjectNode::create()
                    ->add('tag', StringNode::create('tech'))
                )
            )
            ->add('must_not', ObjectNode::create()
                ->add('range', ObjectNode::create()
                    ->add('age', ObjectNode::create()
                        ->add('from', IntNode::create(10))
                        ->add('to', IntNode::create(20))
                    )
                )
            )
            ->add('should', ArrayNode::create()
                ->add(ObjectNode::create()
                    ->add('term', ObjectNode::create()
                        ->add('tag', StringNode::create('wow'))
                    )
                )
                ->add(ObjectNode::create()
                    ->add('term', ObjectNode::create()
                        ->add('tag', StringNode::create('elasticsearch'))
                    )
                )
            )
            ->add('minimum_should_match', IntNode::create(1))
            ->add('boost', FloatNode::create(1.1))
        )
    );

echo $qb->json(true);

Other samples

Converter

统计信息

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

GitHub 信息

  • Stars: 3
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-04-23

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固