Gruppe von und Filter max (Datum) zwischen zwei Daten in der elastischen Suche

Derzeit können wir gruppieren nach customer_id in der elastischen Suche.

Im Folgenden ist die Dokumentenstruktur

{ "order_id":"6", "customer_id":"1", "customer_name":"shailendra", "mailing_addres":"shailendra@gmail.com", "actual_order_date":"2000-04-30", "is_veg":"0", "total_amount":"2499", "store_id":"276", "city_id":"12", "payment_mode":"cod", "is_elite":"0", "product":["1","2"], "coupon_id":"", "client_source":"1", "vendor_id":"", "vendor_name: "", "brand_id":"", "third_party_source":"" } 

Jetzt müssen wir die Gruppe filtern, um die Dokumente zu finden

  1. Letztes bestelltes Datum zwischen zwei Daten
  2. Erster Auftragsdatum zwischen zwei Daten

Wie können wir das erreichen?

One Solution collect form web for “Gruppe von und Filter max (Datum) zwischen zwei Daten in der elastischen Suche”

Sie können mit der Abfrage unten versuchen. Innerhalb jedes Kunden Eimers, wir weiter filtern alle Dokumente zwischen zwei Daten (hier habe ich den Monat August 2016 genommen) und dann führen wir eine stats Aggregation auf dem Datum Feld. Der min ist das erste Auftragsdatum und der Maximalwert ist das letzte Bestelldatum.

 { "aggs": { "customer_ids": { "terms": { "field": "customer_id" }, "aggs": { "date_filter": { "filter": { "range": { "actual_order_date": { "gt": "2016-08-01T00:00:00.000Z", "lt": "2016-09-01T00:00:00.000Z" } } }, "aggs": { "min_max": { "stats": { "field": "actual_order_date" } } } } } } } } 
  • Zugriff auf Dict-Elemente mit führenden Unterstrichen in Django-Vorlagen
  • Elasticsearch Bulk-Index in Chunks mit PyEs
  • Elasticsearch-py scannen und blättern, um alle Dokumente zurückzugeben
  • Kein Handler für Typ [Text] deklariert auf Feld [Titel] (python elasticsearch
  • Machen Sie eine Anfrage an eine RESTful API mit Python
  • Wie bekomme ich "Daten verarbeitet" in Elastiksuche
  • Python ist die beste Programmiersprache der Welt.