У меня есть база данных строк (произвольная длина), которая содержит более миллиона элементов (потенциально больше).
Мне нужно сравнить предоставленную пользователем строку со всей базой данных и получить идентичную строку, если она существует, или иным образом вернуть самые близкие нечеткие соответствия (60% сходства или лучше). Время поиска в идеале должно быть менее одной секунды.
Моя идея - использовать расстояние редактирования для сравнения каждой строки db с поисковой строкой после сужения кандидатов из db на основе их длины.
Однако, поскольку мне нужно будет выполнять эту операцию очень часто, я собираюсь создать индекс строк db для хранения в памяти и запросить индекс, а не db напрямую.
Любые идеи о том, как подойти к этой проблеме по-другому или как построить индекс в памяти?