什么是在谷歌App Engine数据存储不精确查询的良好格局?
-
21-08-2019 - |
题
在谷歌应用程序引擎数据库查询语言(GQL)不提供不精确运营商如“喜欢”或甚至不区分大小写。人们可以通过存储领域的小写形式得到解决的情况下敏感的问题。但是如果我要搜索一个人,但我不知道名字的拼写?是否有处理这种情况下接受的模式?
解决方案
从文档引用:
提示:查询过滤器没有明确的方式来匹配只是一个字符串值的一部分,但你可以使用假货不等式过滤前缀匹配:
db.GqlQuery("SELECT * FROM MyModel WHERE prop >= :1 AND prop < :2", "abc", u"abc" + u"\ufffd")
这与以字符ABC开始的字符串属性prop每为MyModel实体相匹配。 Unicode字符串U“\ ufffd”表示最大的可能Unicode字符。当属性值在索引进行排序,落在该范围内的值是所有与给定前缀开始的值的
http://code.google.com/appengine/docs/蟒/数据存储/ queriesandindexes.html
另一种选择是SearchableModel,但是,我不认为它支持部分匹配。
其他提示
您可以存储一个同音 http://effbot.org/librarybook/soundex.htm数据存储中的名称版本。然后,查询一个名称,SOUNDEX该查询,并期待这件事。
不隶属于 StackOverflow