[PYTHON] elasticsearch_dsl Memorandum

Umgebung

Python3.8.2 elasticsearch-dsl 7.1

Da Elasticsearch problematisch war, habe ich nur die Abfrage in Python überprüft.

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'}}
}}

Ich möchte Aggs Array-Verschachtelung hinzufügen

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

elasticsearch_dsl Memorandum
Memorandum zu Djangos QueryDict
Memorandum für die Migration mit GORM
Memorandum of fastText (Bearbeitung)
Memorandum of vi Befehl
Analyse der Messdaten ①-Memorandum of Scipy Fitting-
Memorandum über die Umgebungskonstruktion der AutoML-Bibliothek PyCaret
Intuitives Verständnis von Jensens Ungleichung
Hinweis zur Kernel-Kompilierung
Vollständiges Verständnis der Funktion numpy.pad
Ein kleines Memorandum von openpyxl
Vollständiges Verständnis des Python-Debuggens
Ein Memorandum zur Verwendung von eigen3
Memorandum des Python-Paketverwaltungstools ez_setup
Memorandum über das Auswendiglernen rekursiver Reihen
Memorandum zum Speichern und Laden des Modells
[Python] Ein Memorandum der schönen Suppe4
Memorandum of files unter conf.d.
Memo der kollektiven Wissensprogrammierung verstehen
[Python] Die potenzielle Feldplanung von Python Robotics verstehen
Anfänger Memorandum Python "isdigit" Bewegung
Ein Memorandum über den Inhalt der Abschlussumfrage
Memorandum beim Ausführen von Python auf EC2 mit Apache
[Verständnis in 3 Minuten] Der Beginn von Linux
Vollständiges Verständnis der asynchronen Python-Programmierung
Ein grobes Verständnis von Python-Feuer und ein Memo
Hinweis zur Verwendung der Python-Eingabefunktion
Ein Memorandum über die Geschwindigkeit der Diagonalisierung beliebigen Grades
Vollständiges Verständnis der objektorientierten Programmierung von Python
Vollständiges Verständnis von Python-Threading und Multiprocessing
Memorandum zum Löschen von Python-Strings
Ein Memorandum über Probleme beim Formatieren von Daten