Wie Solr und Fusion das Flugplanungs-Chaos von American Airlines lösen können

Vor kurzem hat American Airlines zu viele Piloten während der Ferienzeit freigestellt. Das mag Sie überraschen, aber auch dies ist…

Vor kurzem hat American Airlines zu viele Piloten während der Ferienzeit freigestellt. Das mag Sie überraschen, aber auch dies ist ein „Suchproblem“.

Den technischen Bereich verstehen

Wenn Sie sich dies als eine Dokumentendatenbank vorstellen (wie Apache Solr, das Backend von Lucidworks Fusion), gibt es eine bestimmte Anzahl von Feldern, die mit Piloten und eine bestimmte Anzahl von Feldern, die mit Flügen verbunden sind. FAA-Bestimmungen, Arbeitsregeln der Pilotengewerkschaft und Geschäftsregeln legen die Bedingungen fest, aus denen die Abfragen bestehen, die wir an Fusion und damit an Solr weitergeben.

Piloten haben Schichtzeiten, Standorte und Urlaubszeiten. Bei Flügen gibt es Startorte, Startzeiten, Landeorte und Landezeiten.

In Fusion modellieren Sie diese Orte als Solr-Raumtypen wie SpatialRecursivePrefixTreeFieldType und sogar einfache LatLonPointSpatialField. Diese speichern im Wesentlichen die X,Y-Koordinaten der Ebene, der Fläche oder was immer Sie wollen. Solr kann auch Polygone und andere „Formen“ im Raum modellieren.

Für die Datums- und Zeitangaben haben Sie das DateRangeField. Damit können Sie eine contains-, within- oder intersects-Operation durchführen.

Die Regeln verstehen

Die FAA-Vorschriften schreiben unter anderem vor, dass Piloten:

  • Haben Sie alle 24 Stunden 10 Stunden Ausfallzeit
  • Fliegen Sie nicht länger als 9h
  • Nicht im Urlaub sein

Piloten befinden sich in einer Stadt und müssen entweder als Pilot oder als Passagier einen Flug in eine Stadt unternehmen.

Die Geschäftsregeln von American Airlines besagen im Wesentlichen:

  • Eine bestimmte Anzahl von Urlaubstagen ist auf der Grundlage der überschüssigen Pilotenkapazität verfügbar.
  • Piloten haben aufgrund ihres Dienstalters Vorrang bei der Inanspruchnahme des Urlaubs

Dies in Solr-Typen modellieren

Ein Pilotschema könnte in etwa wie folgt aussehen:

  • ID – IntPointField
  • Name – Text
  • Datum der Einstellung – DateRangeField
  • Letzte Verschiebung – DateRangeField
  • Aktueller Standort – LatLong

Ein Flugschema könnte in etwa wie folgt aussehen:

  • ID – IntPointField
  • Modell – IntPointField
  • Start – LatLonPointSpatialField
  • Ende – LatLonPointSpatialField
  • Dauer – DateRangeField

Die verfügbare Urlaubszeit als Schema könnte so aussehen:

  • ID – IntPointField
  • Datum – DateRangeField
  • Number_allowed – IntPointField

Es kann in Blöcken oder einzelnen Terminen erfolgen.

Die „Gebote“ der Piloten für ihren Urlaub könnten folgendermaßen aussehen:

  • ID – IntPointField – IntPointField
  • Zeit_Zeitraum – IntPointField
  • Pilot – IntPointField

Die Umsetzung der Regeln

Die Implementierung besteht eigentlich aus einer Reihe von Suchvorgängen und dem Hinzufügen von Dokumenten zu Sammlungen. Bei der Suche nach einem Piloten kann eine Fusion-Abfrage-Pipeline eingerichtet werden, die den Flug als Argument nimmt, aber eine Solr-Abfrage konstruiert, die im Wesentlichen eine Suche nach dem nächstgelegenen Piloten ist, der noch keine 9-Stunden-Schicht hatte. Wenn kein Pilot in Reichweite gefunden wird, wird eine Abfrage mit größerer Reichweite ausgeführt, die einen Piloten findet, der dorthin geflogen werden kann (was auch eine Unterabfrage für einen verfügbaren Flug beinhaltet).

Für die Entfernungsabfragen sieht es in der Abfragesprache von Solr wie folgt aus: &q=:&fq={!bbox sfield=store}&pt=45.15,-93.85&d=1. Wenn Sie bei 45.15,-93.85 lat,long beginnen und wir davon ausgehen, dass sich dort ein Flughafen befindet, dann können wir innerhalb einer Box mit +1 und -1 (d.h. 44.15 bis 46.16 und -94.85 bis -92.85) suchen. Auf diese Weise können wir herausfinden, ob ein Pilot „nah genug“ ist.

Für die Zeitbereiche sieht die Solr-Abfrage etwa so aus:[2017-12-20T17:30:00.772Z TO 2017-12-20T18:30:00.772Z].

Sie können auch zwei Datumsbereiche mit einer Intersects-, Contains- oder Within-Abfrage vergleichen. In Solr sieht eine Abfrage wie folgt aus: {!field f=Duration op=Contains}[2016-02-02T14:50 TO 2016-02-02T15:00].

Bei Urlaubsangeboten für Piloten haben Sie eine Frist bis zum Einstellungsdatum, das ist alles.

Amerikanisch: Call Me Maybe?

Offensichtlich sind die Regeln komplizierter als in der Presse zu lesen ist. Aber das sind die grundlegenden Probleme, die sie lösen müssen, und Solr ist superschnell und gut dafür geeignet. Außerdem ist Solr erprobt, skalierbar und bietet sowohl hohe Verfügbarkeit als auch Disaster Recovery.

Wenn Sie Fusion auf Solr aufsetzen, können Sie einen Teil der Komplexität dieses Prozesses abstrahieren und sogar die Vorteile der KI nutzen, um fortgeschrittenere Probleme zu lösen. Wenn Sie also dieses Weihnachten in der Schlange stehen, denken Sie an diesen Blog und denken Sie „Verdammt, ich wünschte, sie würden einfach Fusion verwenden, dann würde ich nicht in dieser Schlange stehen!“ Wenn Sie jemand anderes sind, denken Sie darüber nach, welche Probleme Sie haben, die Suchprobleme sein könnten und wie Sie skalierbare, zuverlässige und bewährte Technologie einsetzen könnten, um sie zu lösen!

Wenn Sie bei American Airlines sind, rufen Sie mich vielleicht an, wir können Ihnen helfen. Sie können mich auf der Kontaktseite finden.

You Might Also Like

B2B-KI-Benchmarkstudie 2025: Was wir in den Schützengräben sehen

Laden Sie die B2B-KI-Benchmark-Highlights 2025 von Lucidworks herunter. Sehen Sie sich die...

Read More

Vom Suchunternehmen zum praktischen KI-Pionier: Unsere Vision für 2025 und darüber hinaus

CEO Mike Sinoway gibt Einblicke in die Zukunft der KI und stellt...

Read More

Wenn KI schief geht: Fehlschläge in der realen Welt und wie man sie vermeidet

Lassen Sie nicht zu, dass Ihr KI-Chatbot einen 50.000 Dollar teuren Tahoe...

Read More

Quick Links