Django: как искать наиболее похожую запись

Существует множество способов запроса информации в базе данных, моей является PostgreSQL, таких как __contains, __icontains, unnaccent__icontains, __unaccent__lower__trigram_similar и так далее. Хотя они очень удобны, ни один из них не помог мне достичь цели, которую я поставил перед собой: поиск наиболее похожей записи. Триграммное сходство подошло довольно близко, но оно больше не работает для длинных строк. Есть ли какая-нибудь операция, которая может получить наиболее близкое значение, работая также для длинных строк?

Вот проблема, с которой я столкнулся: На моем сайте я хочу, чтобы человек мог искать книги. Я использую триграммное сходство. Поиск по lord и lord of не дает результатов, а lord of the, lord of the rings и lord of the rings: fellowship of the ring дает правильные результаты.

Мне это не нравится! Люди, которые не хотят набирать весь этот текст, не станут этого делать, они, скорее всего, просто наберут lord или что-то подобное. Я мог бы просто использовать __contains или __icontains, но я хочу справиться с орфографическими ошибками.

Как мне справиться с ними обоими?

Я использовал SpaCy раньше, но это было только для моих проектов машинного обучения. Стоит ли мне использовать это?

Вернуться на верх