Я пытаюсь найти способ хранить мои данные с быстрым доступом (лучше, чем O (n)).
Моя база данных состоит из данных (строки длиной 4096 байт), которые представляют некоторую информацию о некоторых элементах.
Проблема в том, что запрос никогда не бывает точным. Я получаю один предмет, а затем мне нужно найти ближайшее совпадение, используя функцию F(a,b)
.
только пример:
1234
3456
6466
F(a,b) = return % of similar digits
GetClosest(1233,F) = 1234
Проблема в том, что F (a, b) - сложный алгоритм (а не правильная метрика).
Теперь у меня есть просто просмотреть всю базу данных, чтобы найти лучшее совпадение.
Существует ли тип дерева или другой тип кластерной базы данных, который может помочь мне быстрее найти сложность?
Дополнительная информация:
F возвращает значение сходства в% процентах. где 100% - идеальное совпадение