安装#
Elasticsearch-php 的安装需要满足以下 4 个需求:
其余的依赖会由 Composer 自动安装。Composer 是一个 PHP 包管理和依赖管理工具,使用 Composer 安装 elasticsearch-php 非常简单。
Libcurl 是可替代的
与 Elasticsearch-php 客户端绑定的默认 HTTP handlers 需要 PHP 的 Libcurl 扩展,但客户端也并非一定要用 Libcurl 扩展。如果你有 一台主机没有安装 Libcurl 扩展,你可以使用基于 PHP streams 的 HTTP handler 来替代。但是性能会变差,因为 Libcurl 扩展要快得多。
版本矩阵#
Elasticsearch-PHP 的版本要和 Elasticsearch 版本适配。
Elasticsearch-PHP 的 master 分支总是与 Elasticsearch 的 master 分支相一致,但不建议在生产环境代码中使用 dev-master 分支。
Elasticsearch Version | Elasticsearch-PHP Branch |
---|---|
>= 6.0 | 6.0 |
>= 5.0, <= 6.0 | 5.0 |
>= 1.0, <= 5.0 | 1.0 , 2.0 |
<= 0.90.* | 0.4 |
Composer 安装#
-
在
composer.json
文件中增加 elasticsearch-php。如果你是新建项目,那么把以下的代码复制粘贴到composer.json
就行了。如果是在现有项目中添加 elasticsearch-php,那么把 elasticsearch-php 添加到其它的包名后面即可:{ "require": { "elasticsearch/elasticsearch": "~6.0" } }
-
使用 composer 安装客户端:首先要用下面第一个命令来安装
composer.phar
,然后使用第二个命令来执行安装程序。composer 会自动下载所有的依赖,把下载的依赖存储在/vendor/
目录下,并且创建一个autoloader
:curl -s http://getcomposer.org/installer | php php composer.phar install --no-dev
关于 Composer 的详情请查看Composer 中文网。
-
最后加载 autoload.php。如果你现有项目是用 Composer 安装的,那么 autoload.php 也许已经在某处加载了,你就不必再加载。最后实例化一个客户端对象:
<?php require 'vendor/autoload.php'; $client = Elasticsearch\ClientBuilder::create()->build();
客户端对象的实例化主要是使用静态方法
create()
,这里会创建一个ClientBuilder
对象,主要是用来设置一些自定义配置。如果你配置完了,你就可以调用build()
方法来创建一个Client
对象。我们会在配置一节中详细说明配置方法。
--no-dev标志#
你会注意到安装命令行指定了 --no-dev
。这里是防止 Composer 安装各种测试依赖包和开发依赖包。对于普通用户没有必要安装测试包。特别是开发依赖包包含了 Elasticsearch 的一套源码,这是为了以 REST API 的方式进行测试。然而这对于非开发者来说太大了,因此要使用 --no-dev
。
如果你想帮助完善这个客户端类库,那就删掉 --no-dev
标志来进行测试吧。