Frage

Die Google App Engine-Datenspeicher Abfragesprache (gql) bietet keine ungenauen Operatoren wie „LIKE“ oder auch Groß- und Kleinschreibung. Man kann sich um den Fall sensibles Thema zu erhalten, indem eine Kleinversion eines Feldes zu speichern. Aber was, wenn ich für eine Person gesucht werden soll, aber ich bin von der Schreibweise des Namens nicht sicher? Gibt es ein akzeptiertes Muster mit diesem Szenario für den Umgang?

War es hilfreich?

Lösung

aus der Dokumentation Zitiert:

Tipp: Abfragefilter haben keine explizite Weise nur ein Teil eines String-Wert übereinstimmen, aber Sie können fälschen Prefix-Übereinstimmung mit Ungleichheitsfilter:

db.GqlQuery("SELECT * FROM MyModel WHERE prop >= :1 AND prop < :2", "abc", u"abc" + u"\ufffd")

Dies entspricht jede MyModel Entität mit einer String-Eigenschaft prop, die mit dem Zeichen abc beginnt. Die Unicode-String u "\ uFFFD" stellt die größtmögliche Unicode-Zeichen. Wenn die Eigenschaftswerte in einem Index sortiert werden, die Werte, die in diesen Bereich fallen alle Werte, die mit dem angegebenen Präfix beginnen.

http://code.google.com/appengine/docs/ python / Datenspeicher / queriesandindexes.html

Eine weitere Option ist die SearchableModel aber ich glaube nicht, dass es teilweise Übereinstimmungen unterstützt.

http://billkatz.com/2008/8/A- SearchableModel-for-App-Motor

Andere Tipps

Sie könnten eine soundex http://effbot.org/librarybook/soundex.htm Version des Namens im Datenspeicher. Dann einen Namen abfragen, soundex die Abfrage, und suchen Sie das wieder wett.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top