我正在尝试检索索引中的所有文档,同时只返回_id字段。
基本上我想要检索我拥有的所有文件ID。
使用时:
{
"query": {
"match_all": {}
},
"fields": []
}
我得到的点击次数:“_ index”,“_ type”,“_ id”,“_ score”,“_ source” 这是我需要的方式。
修改(答案): 所以我的问题是我使用KOPF运行查询,结果不准确(得到_source和更多......)!使用卷曲时,我得到了正确的结果!
所以上面的查询实际上实现了我所需要的! 您也可以使用:
{
"query": {
"match_all": {}
},
"_source": false,
}
或
{
"query": {
"match_all": {}
},
"fields": ["_id"]
}
答案 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