Elasticsearch - obtenir l'agrégation des termes pour les champs spécifiés


Pooja

J'utilise des agrégations de termes pour obtenir tout le nombre d'utilisateurs de chaque ville

{
"aggs" : {
"cities" : {
    "terms" : { "field" : "city.name" }
    }
  }
}

Cela donne des résultats. Mais je veux toujours obtenir certaines villes spécifiques dans les résultats de l'agrégation, qu'elles soient dans le top 10 ou non. Dois-je utiliser l'agrégation de filtres pour chacune des villes séparément pour obtenir son résultat?

Val

Vous avez trois solutions:

A. Vous pouvez spécifier un filtre dans la requête:

{
  "query": {
    "terms": {
      "city.name": [ "city1", "city2", "city3" ]
    }
  },
  "aggs": {
    "cities": {
      "terms": {
        "field": "city.name"
      }
    }
  }
}

B. Vous pouvez spécifier un filtre dans les agrégations:

{
  "aggs": {
    "city_filter": {
      "filter": {
        "terms": {
          "city.name": [
            "city1",
            "city2",
            "city3"
          ]
        }
      },
      "aggs": {
        "cities": {
          "terms": {
            "field": "city.name"
          }
        }
      }
    }
  }
}

C. Vous pouvez filtrer les valeurs dans les termes agrégation:

{
  "aggs": {
    "cities": {
      "terms": {
        "field": "city.name",
        "include": "city1*",
        "exclude": "city2*"
      }
    }
  }
}

Articles connexes


Ordre d'agrégation des termes Elasticsearch

Calardan Nous travaillons actuellement sur un CMS de document multilingue. Par conséquent, nous avons des documents qui sont traduits dans différentes langues. Pour la recherche avec Elasticsearch, nous utilisons actuellement un index par langue (allemand, ang

Agrégation et interrogation des termes Elasticsearch

Vladpoverin J'ai deux types de messages de journal: Jul 23 09:24:16 rrr mrr-core[222]: Aweg3AOMTs_1563866656871111.mt processMTMessage() #12798 realtime: 5.684 ms Jul 23 09:24:18 rrr mrr-core[2222]: Aweg3AOMTs_1563866656871111.0.dn processDN() #7750 realtime:

Comment obtenir des champs _source spécifiques dans l'agrégation

Anthony Poonam J'explore ElasticSearch, à utiliser dans une application, qui traitera de gros volumes de données et générera des résultats statistiques sur eux. Mon besoin est de récupérer certaines statistiques pour un domaine particulier. Par exemple, pour u