网站集群建设解决方案,股权分配方案创业初期,宣传推广费用预算,京伦网站建设快速开始edit这一节会概述一下客户端以及客户端的一些主要方法的使用规则。在 composer.json 文件中引入 elasticsearch-php#xff1a;{require: {elasticsearch/elasticsearch: ~6.0}}用 composer 安装客户端#xff1a;curl -s http:…快速开始edit这一节会概述一下客户端以及客户端的一些主要方法的使用规则。在 composer.json 文件中引入 elasticsearch-php{require: {elasticsearch/elasticsearch: ~6.0}}用 composer 安装客户端curl -s http://getcomposer.org/installer | phpphp composer.phar install --no-dev在项目中引入自动加载文件(如果还没引入)并且实例化一个客户端require vendor/autoload.php;use Elasticsearch\ClientBuilder;$client ClientBuilder::create()-build();索引一个文档edit在 elasticsearch-php 中几乎一切操作都是用关联数组来配置。REST 路径(endpoint)、文档和可选参数都是用关联数组来配置。为了索引一个文档我们要指定4部分信息indextypeid 和一个 body。构建一个键值对的关联数组就可以完成上面的内容。body 的键值对格式与文档的数据保持一致性。(译者注如 [testField ⇒ abc] 在文档中则为 {testField : abc})$params [index my_index,type my_type,id my_id,body [testField abc]];$response $client-index($params);print_r($response);收到的响应数据表明你指定的索引中已经创建好了文档。响应数据是一个关联数组里面的内容是 Elasticsearch 返回的decoded JSON 数据Array([_index] my_index[_type] my_type[_id] my_id[_version] 1[result] created[_shards] Array([total] 2[successful] 1[failed] 0)[_seq_no] 0[_primary_term] 1)获取一个文档edit现在获取刚才索引的文档$params [index my_index,type my_type,id my_id];$response $client-get($params);print_r($response);响应数据包含一些元数据(如 indextype 等)和 _source 属性这是你发送给 Elasticsearch 的原始文档数据。Array([_index] my_index[_type] my_type[_id] my_id[_version] 1[found] 1[_source] Array([testField] abc))搜索一个文档edit搜索是 elasticsearch 的一大特色所以我们试一下执行一个搜索。我们准备用 Match 查询来作为示范$params [index my_index,type my_type,body [query [match [testField abc]]]];$response $client-search($params);print_r($response);这个响应数据与前面例子的响应数据有所不同。这里有一些元数据(如 took, timed_out 等)和一个 hits 的数组这代表了你的搜索结果。而 hits 内部也有一个 hits 数组内部的 hits 包含特定的搜索结果Array([took] 16[timed_out] [_shards] Array([total] 5[successful] 5[skipped] 0[failed] 0)[hits] Array([total] 1[max_score] 0.2876821[hits] Array([0] Array([_index] my_index[_type] my_type[_id] my_id[_score] 0.2876821[_source] Array([testField] abc)))))删除一个文档edit好了现在我们看一下如何把之前添加的文档删除掉$params [index my_index,type my_type,id my_id];$response $client-delete($params);print_r($response);你会注意到删除文档的语法与获取文档的语法是一样的。唯一不同的是 delete 方法替代了 get 方法。下面响应数据代表文档已被删除Array([_index] my_index[_type] my_type[_id] my_id[_version] 2[result] deleted[_shards] Array([total] 2[successful] 1[failed] 0)[_seq_no] 1[_primary_term] 1)删除一个索引edit由于 elasticsearch 的动态特性我们创建的第一个文档会自动创建一个索引同时也会把 settings 里面的参数设定为默认参数。由于我们在后面要指定特定的 settings所以现在要删除掉这个索引$deleteParams [index my_index];$response $client-indices()-delete($deleteParams);print_r($response);响应数据是Array([acknowledged] 1)创建一个索引edit由于数据已被清空我们可以重新开始了现在要添加一个索引同时要进行自定义 settings$params [index my_index,body [settings [number_of_shards 2,number_of_replicas 0]]];$response $client-indices()-create($params);print_r($response);Elasticsearch会创建一个索引并配置你指定的参数值然后返回一个消息确认Array([acknowledged] 1[shards_acknowledged] 1[index] my_index)本节结语edit这里只是概述了一下客户端以及它的语法。如果你很熟悉 elasticsearch你会注意到这些方法的命名跟 REST 路径(endpoint)是一样的。你也注意到了客户端的参数配置从某种程度上讲也是方便你的IDE易于搜索。$client 对象下的所有核心方法(索引搜索获取等)都是可用的。索引管理和集群管理分别在 $client-indices() 和 $client-cluster() 中。请查询文档的其余内容以便知道整个客户端的运作机制。