40

我已经搜索了 2 天了。我使用 sense chrome 插件来测试我的查询,但我没有找到如何指定他应该搜索的索引。所以我的查询搜索了所有的索引,使用起来并不容易。

我尝试了以下语法:

GET _search
{
    "query": {
        "term": {
           "_index": {
              "value": "dev_events2"
           }
        }
    }

}

GET _search
{
    "_index": "dev_events2",
    "query": {
        "match_all" : {  }
    }

}

GET _search
{
    "index": "dev_events2",
    "query": {
        "match_all" : {  }
    }

}

问候,

本杰明·V。


编辑我终于找到了答案:只需将索引名称添加到获取的 url 中:localhost:9201/myIndexName

4

3 回答 3

30

下面是 curl 示例,它的工作原理是什么,并允许您搜索多个索引:

curl 'http://localhost:9200/myindex1,myindex2/_search?q=*'

对于单个特定索引:

curl 'http://localhost:9200/myindex1/_search?q=*'

要查找查找索引名称:

curl 'localhost:9200/_cat/indices'

如果你想搜索所有索引:

curl 'localhost:9200/_search?pretty'
于 2017-01-09T15:28:25.390 回答
22

您还可以将索引/类型添加到 GET/PUT/DELETE ... 查询:

GET index/type/_search
{
   "query": {
        "bool": {
            "must": [
                {
                    "term": {
                        ...
                    }
                }
            ]
        }
    }
}
于 2015-03-11T08:28:53.243 回答
21
GET index_name/_search
{
    "query": {
        "match_all" : { }
    }
}

或指定索引类型

GET index_name/index_type/_search
{
    "query": {
        "match_all" : { }
    }
}
于 2017-03-02T12:50:49.453 回答