elasticsearch - Elasticsearch,Kibana分类/汇总文档

标签 elasticsearch group-by aggregate kibana

在Elastisearch索引中,我正在收集用户的评分。也就是说,在索引中
localhost:9200 / content_ratings /我们有类型为content_rating的文档。此文档类型具有以下字段:

  • 标题
  • 导师
  • 网址
  • 评分
  • 已通过
  • 评分

    假设我们的索引包含以下文档:
    {
      "title": "Data Quality", "author": "John Queue", "url": "/news/2015/data-quality", "rating":3, "ratedBy": "userA"
    }
    {
      "title": "Data Quality", "author": "John Queue", "url": "/news/2015/data-quality", "rating":1, "ratedBy": "userB"
    }
    {
      "title": "User Story Estimations", "author": "Abby Edye", "url": "/news/2014/story-splitting", "rating":5, "ratedBy": "userC"
    }
    

    我需要一个报告(Elasticsearch 1.0,Kibana 3),其中显示了每个已评分的项目并计算了其平均评分。因此,我们需要对“按URL分组”并具有以下内容:
    "title": "Data Quality", "author": "John Queue", "url": "/news/2015/data-quality", "avgRating":2
    "title": "User Story Estimations", "author": "Abby Edye", "url": "/news/2014/story-splitting", "avgRating":5
    

    a)ES中有一种方法可以使用“分组依据”等效结构?

    b)ES中是否可以查询a)(另一个)查询返回的结果? -我之所以这样问是因为,从汇总结果来看,在另一份报告(“Kibana面板”)中,我需要计算项目如何被评为好(4)或好(5)?

    我是ES / kibana的新手,在经过大量搜索之后,最接近我的要求的是这些链接:
    How do I group documents in elasticsearch by a single field?
    https://www.elastic.co/guide/en/elasticsearch/reference/1.3/search-aggregations-metrics-top-hits-aggregation.html

    我尝试了我目前的设置(ES 1.0,kibana3)隐式支持的术语facet,但距离我所需的条件还差得远……

    最佳答案

    是的,您可以在elasticsearch中使用“ags”执行分组操作。

    我在这里有一个示例,您可以了解如何制作自己的产品:
    在这里,我使用嵌套式农业(groupby)来获得每个特定年龄段的民族的平均年龄。

    GET customer/_search
    {
    "size": 0,
        "aggs": {
            "group_by_state": {
                "range": {
                    "field": "age",
                    "ranges": [
                            { "from": 20,"to": 40 },
                            { "from": 40, "to": 60 },
                            { "from": 60, "to": 100}
                    ]
                },
                "aggs": {  
                    "group_by_nationality": {
                        "terms": { 
                            "field": "nationality.keyword"
                        },
                        "aggs": {
                          "average_age": {
                                "avg": {
                                    "field": "age"
                                }
                            }
                        }
                    }
                }
            }              
        }
    }
    

    关于elasticsearch - Elasticsearch,Kibana分类/汇总文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35896269/

    相关文章:

    MySQL - 查询帮助选择具有按日期分组的最新时间戳的结果

    Python 条形图和折线图,在一张图中包含组

    c++ - 如何将聚合支持到 STL 或类似 STL 的库中

    python - 按周和月聚合 Pandas 数据框

    python - Python Agent如何使用ElasticAPM跟踪各种计数器/值随时间的演变?

    php - Elasticsearch 或者匹配查询

    perl - ElasticSearch (search_context_missing_exception) 与 Search::ElasticSearch::Scroll

    mysql - 按顺序按比赛分组

    python - Django 和条件聚合

    ElasticSearch 不映射 JODA 时间格式