[PYTHON] Mémorandum elasticsearch_dsl

environnement

Python3.8.2 elasticsearch-dsl 7.1

Comme Elasticsearch était gênant, j'ai vérifié uniquement la requête sur Python.

A, Q

test = A("terms", field="hoge")
print(test.to_dict())
print(type(test))

test2 = Q("terms", field="huge")
print(test2.to_dict())
print(type(test2))

{'terms': {'field': 'hoge'}}
<class 'elasticsearch_dsl.aggs.Terms'>
{'terms': {'field': 'huge'}}
<class 'elasticsearch_dsl.query.Terms'>

Agg Array

array_test = [A("terms", field="key_" +str(i)) for i in range(5)]

search = Search()
for i in range(5):
    search.aggs.bucket("array_" + str(i), array_test[i])

print(search.to_dict())
{'aggs': {
  'array_0': {'terms': {'field': 'key_0'}}, 
  'array_1': {'terms': {'field': 'key_1'}}, 
  'array_2': {'terms': {'field': 'key_2'}}, 
  'array_3': {'terms': {'field': 'key_3'}}, 
  'array_4': {'terms': {'field': 'key_4'}}
}}

Je souhaite ajouter une imbrication Aggs Array

array_test = [A("terms", field="key_" +str(i)) for i in range(5)]

search = Search()
X = search.aggs.bucket("array_0", array_test[0])
for i in range(1, 5):
    X = X.bucket("array_" + str(i), array_test[i])

print(search.to_dict())
{'aggs': {'array_0': {
  'terms': {'field': 'key_0'},
  'aggs': {'array_1': {
    'terms': {'field': 'key_1'},
    'aggs': {'array_2': {
      'terms': {'field': 'key_2'},
      'aggs': {'array_3': {
        'terms': {'field': 'key_3'},
        'aggs': {'array_4': {
          'terms': {'field': 'key_4'}
        }}
      }}
    }}
  }}
}}}

Recommended Posts

Mémorandum elasticsearch_dsl
Mémorandum sur le QueryDict de Django
Mémorandum de migration avec GORM
Mémorandum de fastText (édition)
mémorandum de commande vi
Analyse des données de mesure ①-Mémorandum de montage scipy-
Mémorandum de construction de l'environnement de la bibliothèque AutoML PyCaret
Compréhension intuitive de l'inégalité de Jensen
Remarque sur la compilation du noyau
Compréhension complète de la fonction numpy.pad
Un petit mémorandum d'openpyxl
Compréhension complète du débogage Python
Un mémorandum d'utilisation de eigen3
Mémorandum de l'outil de gestion de paquets Python ez_setup
Mémorandum sur la mémorisation de séries récursives
Mémorandum de sauvegarde et modèle de chargement
[Python] Un mémorandum de belle soupe4
Mémorandum de dossiers sous conf.d
Comprendre le mémo de la programmation collective des connaissances
[Python] Comprendre le potentiel_field_planning de Python Robotics
Mémorandum du débutant Mouvement "isdigit" Python
Un mémorandum du contenu de l'enquête de clôture
Mémorandum lors de l'exécution de Python sur EC2 avec Apache
[Comprendre en 3 minutes] Le début de Linux
Compréhension complète de la programmation asynchrone Python
Une compréhension approximative de python-fire et un mémo
Un mémorandum sur l'utilisation de la fonction d'entrée de Python
Un mémorandum de la vitesse de diagonalisation arbitraire des degrés
Compréhension complète de la programmation orientée objet de Python
Compréhension complète du threading Python et du multitraitement
Mémorandum du processus de suppression de chaîne python
Un mémorandum de problème lors du formatage des données