代码之家  ›  专栏  ›  技术社区  ›  Sajna

弹性搜索中的聚合

  •  0
  • Sajna  · 技术社区  · 8 年前

    {"Book_Id":"102","Review_Text":"DescentRead"},{"Book_Id":"102","Review_Text":"For Kids."},{"Book_Id":"103","Review_Text":"Great"},{"Book_Id":"103","Review_Text":"Excellent"}
    

    我可以把每本书的所有评论都列成一个列表吗?

     [ { Book_Id: 102, Review_Text: [ "DescentRead", "For Kids"], { Book_Id: 103, reviews: [ "Great","Excellent"] } ]
    

    尝试了一些与AGG的线索,但无法得到它。任何提示都会有帮助!!

    1 回复  |  直到 8 年前
        1
  •  0
  •   Peter    8 年前

    点击率最高的聚合是否可行?限制在于,您需要指定每次聚合的最大点击量(在本例中,将返回按审阅文本排序的每个图书ID的前100个结果),但除此之外,您可以将其作为普通查询运行,并指定要返回的字段、应如何排序(以获取顶部点击数)等。

    aggs查询示例:

    POST
    http://myserver:9200/books/book/_search
    {
      "size": 0,
      "aggs": {
        "BookReviews": {
          "terms": {
            "field": "Book_Id.keyword"
          },
          "aggs": {
            "top_reviews": {
              "top_hits": {
                "sort": [ { "Review_Text.keyword": { "order": "desc" } } ],
                "size": 100,
                "_source": {
                  "includes": [ "Review_Text" ]
                }
              }
            }
          }
        }
      }
    }
    

    请注意,聚合的名称(“BookReviews”和“top_reviews”)可以使用您选择的任何名称,并且相同的名称将出现在生成的聚合树中。您可以根据索引中的术语进行多级聚合,并包括任何级别的热门内容,通常用于深入报告或类似情况。

    使用的映射:

    {
      "books": {
        "mappings": {
          "book": {
            "properties": {
              "Book_Id": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              },
              "Review_Text": {
                "type": "text",
                "fields": {
                  "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                  }
                }
              }
            }
          }
        }
      }
    }
    

    请阅读elasticsearch文档页面中的更多内容: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html

    (如果您提供更完整的示例数据集,我们可以提供更现实的示例查询,因为示例中没有太多用于排序或评分结果的数据)

    推荐文章