Utilisez Top Hits dans ES pour interroger les données détaillées de chaque seau de résultats d'agrégation de seau

1. Scénarios applicables

Top hits (top hits) est une fonction d'agrégation utilisée pour renvoyer les N premiers documents de chaque bucket (bucket) dans les résultats de la requête. Ceci est utile dans les situations où vous avez besoin de voir les documents les plus pertinents ou les mieux notés dans chaque compartiment dans les résultats agrégés.

Pour le dire simplement, Top Hits est un affichage détaillé des documents pertinents dans les résultats agrégés. Il est différent de Post Filter. Post Filter est une requête basée sur des données source et n'a aucun lien de cause à effet avec Agg. Le résultat n'a aucun impact. sur Aggs. Top Hits est une requête basée sur le résultat d'Aggs, qui est affecté par le résultat d'Aggs.

2. Grammaire

La syntaxe de l'agrégation Top Hits est la suivante :

{
  "aggs": {
    "aggregation_name": {
      "terms": {
        "field": "字段名"
      },
      "aggs": {
        "top_docs": {
          "top_hits": {
            "size": 数量,
            "sort": [
              {
                "排序字段": {
                  "order": "排序顺序"
                }
              }
            ]
          }
        }
      }
    }
  }
}

Parmi eux, "aggregation_name" est le nom de l'opération d'agrégation et "field name" est le champ à compartimenter. "quantité" est le nombre de documents dans chaque compartiment à récupérer. Spécifiez éventuellement plusieurs champs de tri et l'ordre de tri pour chaque champ.

3. Cas

Cas : Classer et agréger selon le type de produit, et afficher les 5 premiers documents associés pour chaque compartiment

GET goods/_search
{
  "size": 0,
  "aggs": {
    "tags_bucket": {
      "terms": {
        "field": "type.keyword"
      },
      "aggs": {
        "top_agg": {
          "top_hits": {
            "size": 10,
            "sort": [
              {
                "price": {
                  "order": "desc"
                }
              }
            ],
            "from": 0
          }
        }
      }
    }
  }
}

おすすめ

転載: blog.csdn.net/wlei0618/article/details/131011211