当前位置:  开发笔记 > 编程语言 > 正文

Google App Engine数据存储区中不精确查询的优秀模式是什么?

如何解决《GoogleAppEngine数据存储区中不精确查询的优秀模式是什么?》经验,为你挑选了1个好方法。

Google App Engine数据存储区查询语言(gql)不提供"LIKE"等不精确的运算符,甚至不区分大小写.通过存储字段的小写版本,可以解决区分大小写的问题.但是如果我想搜索一个人但我不确定这个名字的拼写怎么办?是否有可接受的处理此方案的模式?



1> Sam..:

引用文档:

提示:查询过滤器没有明确的方法来匹配字符串值的一部分,但您可以使用不等式过滤器伪造前缀匹配:

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

这将匹配每个MyModel实体,其字符串属性prop以字符abc开头.unicode字符串u"\ ufffd"表示最大可能的Unicode字符.当属性值在索引中排序时,属于此范围的值是以给定前缀开头的所有值.

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

另一种选择是SearchableModel,但是,我不相信它支持部分匹配.

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

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有