Elasticsearch中的结果过滤器和分页

时间:2017-09-18 08:33:14

标签: elasticsearch

我需要一些帮助或想法以确保正确的程序 我已经索引了大量的文件。现在我发现有些内容几乎相同的文件,例如

{
  "title": "myDocument",
  "date": "2017-09-18",
  "page": 1
}

{
  "title": "myDocument",
  "date": "2017-09-18",
  "page": 2
}

标题字段被映射为文本,日期是日期,页面是整数。正如您所看到的,唯一的区别是页面值 现在我想进行查询并过滤掉这些重复项。现场崩溃似乎是一种很好的方法,但在这种情况下,我无法得到正确的结果数,这对我来说很重要。
另一种方法是首先获得所有结果,然后“手动”过滤掉,但后来我遇到了分页问题。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情。

GET index/type/_search
{
  "aggs": {
    "count_by_title_date_page":{
      "terms": {
        "field": "title.keyword",
        "size": 100
      },
      "aggs": {
        "date": {
          "terms": {
            "field": "date.keyword",
            "size": 100
          },
          "aggs": {
            "page": {
              "terms": {
                "field": "page.keyword",
                "size": 100
              }
            }
          }
        }
      }
    }
  }
}