【问题标题】:Elastic search grouping unique values弹性搜索分组唯一值
【发布时间】:2017-09-17 08:28:47
【问题描述】:

我有一些数据:

[{
    "article_id": 257710962,
    "category_id": "category1"
},
{
    "article_id": 257710962,
    "category_id": "category2"
},
{
    "article_id": 257713968,
    "category_id": "category3"
},
{
    "article_id": 257717376,
    "category_id": "category4"
}]

我应该如何查询以获得这样的结果

[{
    "article_id": 257710962,
    "category_id": ["category1", "category2"]
},
{
    "article_id": 257713968,
    "category_id": "category3"
},
{
    "article_id": 257717376,
    "category_id": "category4"
}]

我需要进行该查询,因为我在我的页面上使用了分页。因此,必须防止重复。 (我使用 article_id 作为我的主键)

【问题讨论】:

    标签: elasticsearch group-by distinct


    【解决方案1】:

    如果你的每个文档来源都是这样的

    "_source": {
                   "article_id": 257710962,
                   "category_id": "category2"
                }
    

    那么您可以尝试 Terms AggregationTop hits Aggregation

    GET /my_index/my_type/_search
    {
       "size": 0,
       "aggs": {
          "agg1": {
             "terms": {
                "field": "article_id"
             },
             "aggs": {
                "agg2": {
                   "top_hits": {}
                }
             }
          }
       }
    }
    

    进一步澄清:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html

    【讨论】:

    猜你喜欢
    • 2017-09-13
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多