PHP-Elasticsearch搜索所有索引

时间:2016-07-22 09:39:55

标签: php elasticsearch nosql

我们已将ElasticSearch配置为根据日期创建不同的索引。

health status index                         pri rep docs.count docs.deleted store.size pri.store.size 
yellow open   localbeta-logstash-2016.07.20   5   1      85636            0       27mb           27mb 
yellow open   .kibana                         1   1          2            0      9.6kb          9.6kb 
yellow open   localbeta-logstash-2016.07.21   5   1     108346            0     37.7mb         37.7mb 
yellow open   localbeta-logstash-2016.07.22   5   1      58172            0     22.1mb         22.1mb 
yellow open   localbeta-logstash-2016.07.19   5   1      11535            0      3.6mb          3.6mb

现在我们必须查询从所有索引中获取特定字段的日志。

PHP-ElasticSearch,我了解查询特定索引很容易。

但是如何一次查询所有索引?

4 个答案:

答案 0 :(得分:0)

您必须查询'index' => '*'

  

*是通配符

答案 1 :(得分:0)

您可以使用_all或空字符串来引用所有索引:https://github.com/elastic/elasticsearch-php/blob/master/src/Elasticsearch/Client.php#L814

  

$ params ['index'] =(list)要搜索的以逗号分隔的索引名称列表;使用_all或空字符串对所有索引执行操作

答案 2 :(得分:0)

搜索不同的索引的工作方式与在单个索引中搜索的方式相同。您无需更改查询中的任何内容。您可以使用_all或类似的Vuldo提及' *'这是一个外卡作为索引的值或只是将其留空,它将搜索所有索引中的所有类型。

您可以查看here了解更多详情

答案 3 :(得分:0)

在Kibana中,您将在以下请求下搜索所有文档:

获取您的INDEX_NAME / _search

{
    "query": {
        "match_all": {}
    }
}

与php相同,您创建了一个相同的请求正文,但语法不同,并且看起来像这样:

[
    "query" => [
        "match_all" => new \stdClass()
    ]
]