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