我需要 Elasticsearch 中与特定模式匹配的索引名称列表。使用 Kibana 做这件事我没有问题,但我根本不知道如何用 Elasticsearch-PHP 客户端做同样的事情。
例子:
Trying to get indices matching the name pattern "*.foo.bar"
With Kibana: GET /_cat/indices/*.foo.bar
有人知道吗?我在 Elasticsearch-PHP 文档中对此一无所知。
我需要 Elasticsearch 中与特定模式匹配的索引名称列表。使用 Kibana 做这件事我没有问题,但我根本不知道如何用 Elasticsearch-PHP 客户端做同样的事情。
例子:
Trying to get indices matching the name pattern "*.foo.bar"
With Kibana: GET /_cat/indices/*.foo.bar
有人知道吗?我在 Elasticsearch-PHP 文档中对此一无所知。
我通过反复试验弄明白了。
获取与模式匹配的索引列表的方法是:
$client = ClientBuilder::create()->build();
$indices = $client->cat()->indices(array('index' => '*.foo.bar'));
在此响应 (7.2) 时的当前文档GET /_cat/indices/
中,您可以找到您正在寻找的端点的文档。
因此,您可以使用以下代码获取索引:
$params = [
// Example of another param
'v' => true,
// ...
'index' => '*.foo.bar'
];
$indices = $client->cat()->indices($params);
文档没有明确说明index
参数,但您可以看到索引是如何在CatNamespace::indices()
方法定义中设置的。
public function indices(array $params = [])
{
$index = $this->extractArgument($params, 'index');
...
$endpoint->setIndex($index);
...
}