Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

use fuzzy matching in django queryset filter

Tags:

Is there a way to use fuzzy matching in a django queryset filter?

I'm looking for something along the lines of:

Object.objects.filter(fuzzymatch(namevariable)__gt=.9)

or is there a way to use lambda functions, or something similar in django queries, and if so, how much would it affect performance time (given that I have a stable set of ~6000 objects in my database that I want to match to)

(realized I should probably put my comments in the question)

I need something stronger than contains, something along the lines of difflib. I'm basically trying to get around doing a Object.objects.all() and then a list comprehension with fuzzy matching.

(although I'm not necessarily sure that doing that would be much slower than trying to filter based on a function, so if you have thoughts on that I'm happy to listen)

also, even though it's not exactly what I want, I'd be open to some kind of tokenized opposite-contains, like:

Object.objects.filter(['Virginia', 'Tech']__in=Object.name)

Where something like "Virginia Technical Institute" would be returned. Although case insensitive, preferably.