PHPackages                             boyfoo/elasticsearch-query - 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. boyfoo/elasticsearch-query

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

boyfoo/elasticsearch-query
==========================

elasticsearch query build

0.0.2(5y ago)015MITPHPPHP &gt;=5.6

Since Jan 14Pushed 5y ago1 watchersCompare

[ Source](https://github.com/boyfoo/elasticsearch-query)[ Packagist](https://packagist.org/packages/boyfoo/elasticsearch-query)[ RSS](/packages/boyfoo-elasticsearch-query/feed)WikiDiscussions master Synced today

READMEChangelog (2)Dependencies (2)Versions (3)Used By (0)

 elasticsearch-query
=====================

[](#-elasticsearch-query-)

🌈 ElasticSearch DSL 查询语句构建组件

[![Build Status](https://camo.githubusercontent.com/a212ad7cec5496973143c0f102221062187d05068acfecacec897c53b29ce5d3/68747470733a2f2f7472617669732d63692e636f6d2f626f79666f6f2f656c61737469637365617263682d71756572792e7376673f6272616e63683d6d6173746572)](https://travis-ci.com/boyfoo/elasticsearch-query)

安装
--

[](#安装)

```
$ composer require boyfoo/elasticsearch-query -vvv
```

使用
--

[](#使用)

### 示例

[](#示例)

使用 `search` 构建器起步创建查询:

```
use Boyfoo\ElasticsearchSql\Search;
use Boyfoo\ElasticsearchSql\Query;

// 创建查询
$params = Search::create()
            ->index('goods')
            ->source(['no', 'price', 'category'])
            ->size(10)
            ->query(function (Query $query) {
                $query->mustMatch("小米手机")->mustTerm('category', '电子产品');
            });
```

打印结果 `var_dump($params->toArray()`:

```
[
  "index" => "goods",
  "type" => "_doc",
  "body" => [
    "_source" => ["no", "name", "price", "category"],
    "size" => 10,
    "query" => [
      "bool" => [
        "must" => [
          [
            "match" => ["name" => "小米手机"]
          ],
          [
            "term" => [
              "category" => ["value" => "电子产品"]
            ]
          ]
        ]
      ]
    ]
  ]
];
```

将结果通过 `elasticsearch/elasticsearch` 官方扩展包执行:

```
use Elasticsearch\ClientBuilder;

...

$client = ClientBuilder::create()->fromConfig($config);

$client->search($params);
```

### 查询

[](#查询)

`Boyfoo\ElasticsearchSql\Query` 类为 `Elasticsearch query` 语句构建类

```
use Boyfoo\ElasticsearchSql\Query;

$query = Query::create()
            ->mustMatch('字段1', '内容1')
            ->notTerm('字段1', '内容2')
            ->shouldRange('字段3', [
                '>=' => 2018, '
