如何使用Elasticsearch-PHP客户端获取Elasticsearch索引名称列表?

时间:2018-04-20 11:48:04

标签: elasticsearch elasticsearch-indices

我需要一个与Elasticsearch匹配某个模式的索引名称列表。使用Kibana我没有问题,但我无法弄清楚如何对Elasticsearch-PHP客户端做同样的事情。

示例:

Trying to get indices matching the name pattern "*.foo.bar"
With Kibana: GET /_cat/indices/*.foo.bar

有谁知道吗?我在Elasticsearch-PHP文档中没有发现任何内容。

2 个答案:

答案 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);
    ...
}