如何检索特定索引中的所有文档ID(_id)

时间:2015-07-08 09:43:26

标签: elasticsearch

我正在尝试检索索引中的所有文档,同时只返回_id字段。

基本上我想要检索我拥有的所有文件ID。

使用时:

{
   "query": {
       "match_all": {}
   },
   "fields": []
}

我得到的点击次数:“_ index”,“_ type”,“_ id”,“_ score”,“_ source” 这是我需要的方式。

修改(答案): 所以我的问题是我使用KOPF运行查询,结果不准确(得到_source和更多......)!使用卷曲时,我得到了正确的结果!

所以上面的查询实际上实现了我所需要的! 您也可以使用:

{
   "query": {
      "match_all": {}
   },
   "_source": false,
}

{
   "query": {
      "match_all": {}
   },
   "fields": ["_id"]
}

2 个答案:

答案 0 :(得分:7)

对于 elasticsearch ,只能使用_source数组来显示特定的fields字段。

_index_type_id_score必须由 elasticsearch 返回。

无法将其从响应中删除。

答案 1 :(得分:0)

我假设您的_id是索引中的文档而不是索引本身。

在新版弹性搜索中," _source"用于检索es文档的选定字段,因为_source字段包含弹性搜索es记录所需的所有内容。

示例:

让我们说索引名称是"电影"和类型是"电影"并且您想要检索所有弹性搜索记录的movieName和movieTitle。

curl -XGET 'http://localhost:9200/movies/movie/_search?pretty=true' -d '
{ 
    "query" : { 
        "match_all" : {} 
    },
    "_source": ["movieName","movieTitle"]
}'

http://localhost:9200/movies/movie/_search?pretty=true&_source=movieName,movieTitle

默认情况下,返回10个结果。要获得n个记录,请将& size = n放入url