Есть таблица, по которой, по некотором полям ведется поиск через fieldname__icontains. Вопрос - как отсортировать результирующий queryset по "близости" вхождения? Например, есть записи (набор записей не реальный, просто чтобы было понятно):
котел
котлета
коты
котировка
икота
кот
При поисковом запросе "кот" - первым в queryset'e был "кот", потому что совпадение полное, потом "коты", потому что после вхождения слова "кот" - всего одна буква следующая, потом - в произвольном порядке - "котел, котлета, котировка" - потому что после "кот" уже много букв, но слова начинаются с "кот", а уже потом, в конце - "икота", потому что она содержит искомую строку уже внутри слова.
Такое вообще реально сделать самому? Или это уже надо использовать всякие поисковые движки, типа elastic, sphinx?