我正在开发GAE Django项目,我必须实现搜索功能,我编写了一个查询,并根据搜索关键字获取数据。
portfolio = Portfolio.all().filter('full_name >=',key).filter('full_name <',unicode(key) + u'\ufffd')
此查询的问题是,它区分大小写。
有什么方法可以让它工作,而不依赖于关键字的情况?
请建议。
提前致谢。
答案 0 :(得分:20)
您需要在写入时存储数据的规范化版本,然后使用相同的规范化进行搜索。
将数据全部大写或全部小写存储,可选择删除标点符号并将所有空格更改为单个空格,并可能将非ASCII字符转换为某种合理的ASCII表示(当然,它比听起来更棘手。)< / p>
答案 1 :(得分:1)
此问题的另一种解决方案 - 数据集很小 - 是在从数据存储区调用结果后在python中过滤结果:
for each_item in list_of_results:
if each_item.name.lower().rfind(your_search_term) != -1:
#Your results action