在谷歌应用程序引擎数据库查询语言(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://billkatz.com/2008/8/A- SearchableModel换的App-引擎

其他提示

您可以存储一个同音 http://effbot.org/librarybook/soundex.htm数据存储中的名称版本。然后,查询一个名称,SOUNDEX该查询,并期待这件事。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top