11
votes

Elasticsearch, obtenir la longueur moyenne du document

Y a-t-il un meilleur moyen d'élasquersarch (autre que d'émettre une correspondance de toutes les requêtes et de la moyenne manuelle sur la longueur de tous les documents retournés) pour obtenir la longueur moyenne du document pour un index spécifique?


0 commentaires

4 Réponses :


1
votes

tiré dans le noir, mais les facettes ou les agrégations combinées à un script peuvent le faire.

{
    ...,

    "aggs" : {
        "avg_length" : { "avg" : { "script" : "doc['_all'].length" } }
    }
}


3 commentaires

Ceci échoue en fait avec +org.elasticsicsearch.index.search.nesté.nonnectestedocsfilter@6 2d17f59))], à partir de [0], S ize [10]: La requête a échoué [Impossible d'exécuter la requête principale]]; Nethed: GroovyscriptExCueLueException [MissingPropertyException [EXCEPROPERTYEXCEPTION [EXCEPROPERTYEX EVALUATION DE LA PROPRIÉTÉE 'DE LA PROPRIÉTÉE' POUR ORG.LASTICSEARCH.INDEX.FIEDDATA.ScriptDocValues ​​$ Cordes, Raison: Groovy.lang.MissingPropertyException: Non Telle propriété: Longueur pour la classe: Java.lang.string]] ; "


essayez doc ['_ tout']. valeurs.size () ()


Tout d'abord, le champ _all n'est pas toujours présent, car cela dépend du modèle d'index. Deuxièmement, de cette manière, vous obtenez le Le champ _all est un champ de prise spécial - tout ce qui concaté les valeurs de tous les autres champs en une grosse chaîne, en utilisant l'espace comme un délimiteur, [...] < / Code> Selon ELASTIC.CO/GUIDE / fr / élastiquearch / référence / actuel / ... et il est obsolète en 6.x




3
votes

J'ai utilisé ce code (j'ai le _Source activé) xxx

Eh bien, les caractères ..Si la chaîne sont UTF-8 pour obtenir les octets: < Pré> xxx


1 commentaires

Malheureusement, il ne fonctionne que avec groovy langage de script qui est absent maintenant par défaut. Dans params._source.tostring () , vous venez de recevoir quelque chose comme org.elasticsearch.search.lookup.sourcelookup@72e72146



2
votes

in Elasticsearch 6.2 Vous devez simplement utiliser la ligne suivante (pas besoin d'ajouter des «termes»): xxx

Voir les détails ici: https://www.elastic.co/guide/en/elasticsearch/reference/ Actuelle / Recherche-Agggation-Metrics-avg-Aggregation.html


0 commentaires