如何用Elasticsearch-PHP客户端获取匹配指定模式的索引名列表?
如何用Elasticsearch-PHP客户端获取匹配
*.foo.bar模式的索引 我懂你在Kibana里用GET /_cat/indices/*.foo.bar能轻松拿到符合模式的索引列表,但翻Elasticsearch-PHP文档却找不到直接对应方法的困惑——其实这个需求完全能实现,只是需要用对客户端的API调用方式:
直接调用Cat Indices API并指定索引模式
Elasticsearch-PHP客户端的cat()->indices()方法支持传入index参数来匹配索引模式,这和你在Kibana里用的REST请求逻辑完全一致。示例代码如下:// 初始化客户端(根据你的环境配置调整) $client = Elastic\Elasticsearch\ClientBuilder::create() ->setHosts(['http://localhost:9200']) ->build(); // 设置参数,指定要匹配的索引模式 $params = [ 'index' => '*.foo.bar', 'format' => 'json' // 可选,指定返回格式为JSON,方便后续处理 ]; // 发送请求并获取响应 $response = $client->cat()->indices($params); // 将响应转换为数组进行处理 $indicesList = $response->asArray(); print_r($indicesList);这段代码会返回所有符合
*.foo.bar模式的索引信息,和你在Kibana里执行的请求结果一致。补充说明
可能你之前没留意到,Elasticsearch-PHP的Cat API方法基本都对应了REST API的参数,只要把REST请求里的路径参数或查询参数对应到客户端的$params数组里即可。如果需要更详细的参数(比如只返回索引名、指定排序等),可以参考客户端Cat Indices方法的参数说明,添加对应的配置项。
内容的提问来源于stack exchange,提问作者Johan Fredrik Varen
相关产品推荐
相关产品推荐

