我需要一个与Elasticsearch匹配某个模式的索引名称列表。使用Kibana我没有问题,但我无法弄清楚如何对Elasticsearch-PHP客户端做同样的事情。
示例:
Trying to get indices matching the name pattern "*.foo.bar"
With Kibana: GET /_cat/indices/*.foo.bar
有谁知道吗?我在Elasticsearch-PHP文档中没有发现任何内容。
答案 0 :(得分:0)
我通过反复试验弄明白了。
获取与模式匹配的索引列表的方法是:
$client = ClientBuilder::create()->build();
$indices = $client->cat()->indices(array('index' => '*.foo.bar'));
答案 1 :(得分:0)
在此回复(7.2)时的current docs中,您可以找到所需的端点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);
...
}