2016-07-14 17 views
1

Soweit ich weiß, können Sie in Algolia nur nach numerischen Feldern sortieren. Wie können Sie Ihre Datensätze effizient so einrichten, dass die Ergebnisse basierend auf einem bestimmten Zeichenfolgenfeld alphabetisch zurückgegeben werden?Wie können Sie in Algolia Datensätze erstellen, um eine alphabetische Sortierung von Abfrageergebnissen zu ermöglichen?

Zum Beispiel sagen wir in jedem Datensatz in einem Index haben Sie ein Feld namens "Titel", die einen beliebigen String-Wert enthält. Wie würden Sie ein Geschwisterfeld namens "title_sort" erstellen, das eine Zahl enthält, mit der die Ergebnisse so sortiert werden können, dass die Datensätze in alphabetischer Reihenfolge nach "title" ausgegeben werden? Gibt es einen besonders gut akzeptierten Algorithmus zum Erstellen einer solchen Nummer aus der Zeichenfolge in "title"?

Antwort

0

Wenn Sie ein statisches Dataset haben, können Sie Ihre Daten einfach sortieren und einen Index darauf setzen. Dies funktioniert so lange, wie Daten bei jeder Aktualisierung Ihrer Indizes sortiert werden.

Ich denke auch, dass, wenn Sie mit einer partiellen Sortierung umgehen können, was bedeutet, dass Sie orc < orb akzeptieren können, aber Sie benötigen or < os, dann könnten Sie eine BaseBase64 als unser Index ableiten. Sie können es dann auf so viele Zeichen wie für Ihre Präzision sortieren. Es ist nur eine teilweise Sortierung, aber es könnte für Ihren Anwendungsfall akzeptabel sein. Sie müssen nur Ihre base64 -> base10-Mappings zuordnen, um die Sortierung zu berücksichtigen.

Wenn Sie sich nicht um den Unterschied zwischen Groß- und Kleinbuchstaben kümmern, können Sie base26 -> base10 verwenden. Je mehr ich darüber nachdenke, desto begrenzter ist es, aber es könnte für Ihren Anwendungsfall funktionieren.