rulerz-php/elasticsearch

RulerZ 的 Elasticsearch 编译目标

dev-master 2020-01-03 14:30 UTC

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 许可证下。