ما هو نمط جيد للاستفسار غير دقيق في محرك جوجل التطبيق مخزن البيانات؟

StackOverflow https://stackoverflow.com/questions/508960

سؤال

ولغة الاستعلام عن محرك جوجل التطبيق مخزن البيانات (GQL) لا يقدم المشغلين غير دقيق مثل "LIKE" أو حتى حالة عدم الاكتراث. يمكن للمرء أن التفاف على قضية حساسة القضية عن طريق تخزين نسخة أقل حدة من حقل. ولكن ماذا لو أريد للبحث عن شخص ولكن لست متأكدا من تهجئة الاسم؟ هناك نمط مقبولة للتعامل مع هذا السيناريو؟

هل كانت مفيدة؟

المحلول

ونقلا عن وثائق:

نصيحة: مرشحات سؤال لا تملك وسيلة واضحة لمطابقة فقط جزء من قيمة سلسلة، ولكن يمكنك همية مباراة البادئة باستخدام مرشحات عدم المساواة:

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

وهذا يطابق كل كيان MyModel مع دعامة الملكية السلسلة التي تبدأ مع اي بي سي حرفا. سلسلة يونيكود ش "\ ufffd" يمثل أكبر حرف Unicode ممكن. عندما يتم فرز قيمة العقارات في فهرس، القيم التي تقع في هذا النطاق هي كافة القيم التي تبدأ مع البادئة معينة.

http://code.google.com/appengine/docs/ الثعبان / مخزن البيانات / queriesandindexes.html

وثمة خيار آخر هو SearchableModel، ومع ذلك، أنا لا أعتقد أنه يدعم مطابقة الجزئية.

http://billkatz.com/2008/8/A- SearchableModel مقابل التطبيق- محرك

نصائح أخرى

هل يمكن تخزين http://effbot.org/librarybook/soundex.htm نسخة من اسم في مخزن البيانات. ثم، للاستعلام اسما، SOUNDEX الاستعلام والبحث أن ما يصل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top