当前位置: 首页 > 知识库问答 >
问题:

如何检索特定索引中的所有文档id(_ id)

解晟睿
2023-03-14

我试图检索一个索引中的所有文档,但只得到_id字段。

基本上,我想检索我拥有的所有文档ID。

使用时:

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

我得到的命中包含:" _index "、" _type "、" _id "、" _score "、" _source ",这比我需要的要多得多。

编辑(回答):所以我的问题是我使用KOPF来运行查询,结果不准确(得到了_source等等…)!当使用curl时,我得到了正确的结果!

所以上面的查询实际上达到了我所需要的!您还可以使用:

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

或者

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

共有2个答案

何烨华
2023-03-14

我假设您的_id是索引中文档的_id,而不是索引本身的_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?漂亮=真实

默认情况下,它返回 10 个结果。要获取 n 个记录,则将

严天逸
2023-03-14

对于弹性搜索,只能使用字段数组指定_sourcefields。

弹性搜索必须返回_index_type_id_score

无法从响应中删除它们。

 类似资料:
  • 问题内容: 我知道如何删除整个ElasticSearch索引,但是如何从索引中清除所有文档? 我的动机:我想拥有一个“ ReIndex”方法,该方法可以清除索引的全部内容,以便可以重新加载所有文档。 ElasticSearch语法非常有用。NEST语法会更好。 问题答案: 我在Nest中寻找类似的东西,我想将语法放在这里,以便任何人查看:

  • 问题内容: 我想从Elasticsearch集群中的完全匹配查询中获取所有结果。我不在乎结果是否是最新的,我不在乎订单,我只想稳定地浏览所有结果,然后从头开始。滚动和扫描最适合此操作,似乎不需要我拍摄快照就很受欢迎。我将要处理数以千万计的文档。 问题答案: 某种程度上与Elasticsearch查询重复,以返回所有记录。但是我们可以添加更多细节来解决开销问题。(即,“拍摄不需要的快照似乎有点受欢迎

  • 当你要在 Elasticsearch 增加文档时,你就需要索引 JSON 文档。JSON 文档会映射 PHP 关联数组,因为 PHP 关联数组可以 encode 为 JSON 数据格式。 因此在 Elasticsearch-PHP 中你可以传递关联数组给客户端来索引文档。我们会概述几种方法来增加文档到 Elasticsearch。 单一文档索引 当索引一个文档时,你可以提供一个 ID 或者让 El

  • 编辑1:我也试过这个,但同样的问题。

  • 假设我有一个Jextfield数组(例如JTextfield[10])。我将它们添加到框架中。现在用户在文本字段中随机输入文本,例如用户首先输入索引为5的文本字段,然后是9,然后是2,依此类推。不一定要填充所有的文本字段。 我的问题是,如何获取文本字段的索引,并在用户输入文本时同时打印索引,这意味着如果用户在文本字段中输入索引5,我应该能够获得索引5,然后如果填充了索引9的文本字段,则打印9,依此

  • 我试图实现一种在Firestore中保持一致性的方法,但我需要一种找到重复数据存在的所有位置的方法。firestore中是否有方法查找其子集合包含具有特定文档ID的文档的所有文档?例如对于以下结构 我将使用什么查询来查找其“朋友”列表包含文档 ID 为 5678 的文档的所有用户 ID?例如,当用户 5678 决定更改他/她的姓名时?