我有这么大的数据集,我想要一个可以在图表中使用的样本。为此,我不需要所有数据,我需要每个第 N 个项目。

例如,如果我有 4000 个结果,而我只需要 800 个结果,我希望能够获得每 5 个结果。

所以有些像:get,skip,skip,skip,skip,get,skip,skip,skip,..

我想知道在 Elasticsearch 中是否可以实现这样的事情?

最佳答案

最好使用脚本化的 filter 。否则你会不必要地使用分数。过滤器就像查询一样,但它们不使用评分。

POST /test_index/_search
{
  "query": {
    "filtered": {
      "filter": {
        "script": {
          "script": "doc['unique_counter'].value % n == 0",
          "params" : {
            "n" : 5
          }
        }
      }
    }
  }
}

您最好不要在实际使用中使用动态脚本。

也就是说,您可能希望查看聚合以绘制有关数据的分析信息,而不是任意抽取样本。

关于elasticsearch - 在 Elasticsearch 中获取第 N 个结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31392952/

10-15 23:16