如何使用Google App Engine进行不区分大小写的过滤查询?

Ank*_*wal 13 django google-app-engine google-cloud-datastore

我正在开发一个GAE Django项目,我必须实现搜索功能,我编写了一个查询,它根据搜索关键字获取数据.

portfolio = Portfolio.all().filter('full_name >=',key).filter('full_name <',unicode(key) + u'\ufffd')
Run Code Online (Sandbox Code Playgroud)

此查询的问题是,它区分大小写.

有没有什么方法可以让它工作,而不依赖于关键字的情况?

请建议.

提前致谢.

Woo*_*ble 20

您需要在写入时存储数据的规范化版本,然后使用相同的规范化进行搜索.

存储数据全部为大写或全部小写,可选地删除标点并将所有空格更改为单个空格,并可能将非ASCII字符转换为某种合理的ASCII表示(当然,它比听起来更棘手.)

  • 您不一定要对所有视图进行更改等.只需添加一个名为foo_uppercase的字段,并让任务一次遍历所有实体1000并填写该字段. (3认同)