Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make case insensitive filter queries with Google App Engine?

I am working on a GAE Django Project where I have to implementing the search functionality, I have written a query and it fetches the data according to the search keyword.

portfolio = Portfolio.all().filter('full_name >=',key).filter('full_name <',unicode(key) + u'\ufffd')

The issue with this query is, that it is case sensitive.

Is there any way through which I can make it to work, without depending upon the case of the keyword?

Please suggest.

Thanks in advance.

like image 743
Ankit Jaiswal Avatar asked Jul 20 '10 12:07

Ankit Jaiswal


1 Answers

You need to store normalized versions of your data at write time, then use the same normalization to search.

Store the data either all uppercase or all lowercase, optionally removing punctuation and changing all whitespace to a single space and maybe converting non-ASCII characters to some reasonable ASCII representation (which is, of course, trickier than it sounds.)

like image 102
Wooble Avatar answered Sep 28 '22 01:09

Wooble