rulerz-php / elasticsearch
RulerZ 的 Elasticsearch 编译目标
Requires
- php: >=7.1
- elasticsearch/elasticsearch: ^6.0
- kphoen/rulerz: dev-master as 1.0.0
Requires (Dev)
- behat/behat: ~3.0
- kphoen/rusty: dev-master
- liip/rmt: ^1.2
- phpunit/phpunit: ^7.1
This package is auto-updated.
Last update: 2024-08-29 04:43:08 UTC
README
为 RulerZ 提供的 Elasticsearch 编译目标。
用法
elastic/elasticsearch-php 是 RulerZ 支持的目标之一。它允许引擎查询 Elasticsearch 服务器。
本说明将展示如何使用 Elasticsearch 和 RulerZ 的官方客户端检索对象。
以下是你需要执行的操作概要
配置 elastic/elasticsearch-php
此主题不会直接在此处处理。您可以遵循 官方文档,或使用您所使用的框架推荐的捆绑包/模块等。
配置 RulerZ
一旦安装并配置了 elastic/elasticelasticsearch-php,我们就可以使用 RulerZ 引擎
$rulerz = new RulerZ( $compiler, [ new \RulerZ\Elasticsearch\Target\Elasticsearch(), // this line is Elasticsearch-specific // other compilation targets... ] );
与 Elasticsearch 相关的唯一配置是将 Elasticsearch
目标添加到已知的编译目标列表中。
过滤目标
现在,当 elastic/elasticsearch-php 和 RulerZ 都准备好了,您可以使用它们来检索数据。
我们之前注入到 RulerZ 引擎中的 Elasticsearch
实例只知道如何使用 Elasticsearch\Client
对象,因此第一步是创建一个这样的对象
$client = new Elasticsearch\Client();
像往常一样,我们调用 RulerZ,传入我们的目标(Search
对象)和规则。RulerZ 将为给定的目标构建正确的执行器,并使用它来过滤数据,或者在我们的情况下从 Elasticsearch 检索数据。
$rule = 'gender = :gender and points > :points'; $parameters = [ 'points' => 30, 'gender' => 'M', ]; $executionContext = [ 'index' => 'index_name', 'type' => 'type_name', ]; var_dump( iterator_to_array($rulerz->filter($client, $rule, $parameters, $executionContext)) );
注意:您会注意到一个名为 $executionContext
的变量非常不寻常。它包含 Elasticsearch 进行请求所需的一些参数,这些参数是必需的。
这就完成了!
许可证
此库在 MIT 许可证下。