当前位置: 首页 > 面试题库 >

ElasticSearch:检索属于存储桶的文档

麻超
2023-03-14
问题内容

我正在尝试检索过去一年的文档,每个文档都放入1个月宽的存储桶中。我将为每个1个月的存储时段提取文档,然后进一步分析它们(超出我的问题范围)。从描述中看来,“桶聚合”似乎是可行的方法,但是在“桶”响应中,我仅获得每个桶中的文档计数,而不是原始文档本身。我想念什么?

GET命令

{
    "aggs" : {
        "DateHistogram" : {
            "date_histogram" : {
                "field" : "timestamp",
                "interval": "month"
            }
        }
    }, 
    "size" : 0
}

结果输出

{
  "took" : 138,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1313058,
    "max_score" : 0.0,
    "hits" : [ ]
  },
  "aggregations" : {
    "DateHistogram" : {
      "buckets" : [ {
        "key_as_string" : "2015-02-01T00:00:00.000Z",
        "key" : 1422748800000,
        "doc_count" : 270
      }, {
        "key_as_string" : "2015-03-01T00:00:00.000Z",
        "key" : 1425168000000,
        "doc_count" : 459
      }, 
      (...and all the other months...)
      {
        "key_as_string" : "2016-03-01T00:00:00.000Z",
        "key" : 1456790400000,
        "doc_count" : 136009
      } ]
    }
  }
}

问题答案:

您快到了,您只需要添加一个top_hits子聚合即可为每个存储桶检索一些文档:

POST /your_index/_search
{
    "aggs" : {
        "DateHistogram" : {
            "date_histogram" : {
                "field" : "timestamp",
                "interval": "month"
            },
            "aggs": {                  <--- add this
                "docs": {
                    "top_hits": {
                        "size": 10
                    }
                }
            }
        }
    }, 
    "size" : 0
}


 类似资料:
  • 问题内容: 使用boto3,我可以访问我的AWS S3存储桶: 现在,存储桶包含文件夹,例如,文件夹本身包含多个带有时间戳的子文件夹。我需要知道这些子文件夹的名称来完成我正在做的另一项工作,我想知道是否可以让boto3为我检索这些子文件夹。 所以我尝试了: 它提供了一个字典,其键“目录”为我提供了所有第三级文件,而不是第二级时间戳目录,实际上,我得到了一个包含以下内容的列表: {u’ETag’:’

  • 存储桶用于存储用户的任意文件。 对象存储是用于存储任意文件的分布式存储服务。存储桶即bucket,用于存储对象文件。用户在存储文件之前必须先创建存储桶,云管平台以存储桶为对象存储的资源单位分配给项目使用。用户可以通过网络便捷的在对象存储中上传、下载以及分享文件。 云管平台目前支持对接并导入基于S3协议的对象存储服务MinIO、Ceph Radio以及公有云提供的对象存储服务。 使用流程: (二者任

  • 问题内容: 这个问题似乎与在Couchbase中使用XDCR有关。如果我有以下简单对象 并设置一个Elasticsearch索引 然后,我可以使用REST API将两个对象添加到该索引中 它们现在都可以搜索(尽管“年龄”是一个人和另一个人的事实。 但是,如果我将这两个对象存储在一个沙发基存储桶中(而不是直接存储到elasticsearch中)并设置了XDCR,则第一个对象可以很好地复制,但是第二个

  • 我发现,当我在IAM策略中使用NotResource作为掩码并将其附加到bucket时,受策略影响的资源是那个bucket中没有在NotResource子句中指定的所有资源。我需要指出一个文档,它清楚地表明情况是这样的。我一直在查看内联策略的文档,以及s3访问管理和策略的文档,但我很难找到这些特定的信息。文档中是否说明了在内联策略中指定资源的限制?

  • 有没有一种方法可以将文件列表从一个S3存储桶复制到另一个存储桶?两个S3存储桶都在同一个AWS帐户中。我可以使用aws cli命令一次复制一个文件: 然而,我有1000份文件要复制。我不想复制源存储桶中的所有文件,因此无法使用sync命令。有没有一种方法可以用需要复制的文件名列表来调用一个文件,从而自动化这个过程?

  • 在GitlabCi期间,我得到了:“致命错误:调用ListObjectsV2操作时发生错误(AccessDenied):访问被拒绝” 我的桶政策: } 在gitlabCI设置集中: AWS\u ACCESS\u KEY\u ID:YOUR-AWS-ACCESS-KEY-ID AWS\u SECRET\u ACCESS\u密钥:YOUR-AWS-SECRET-ACCESS-KEY S3\u BUCK