Как найти ближайшие пары (расстояние Хэмминга) строки двоичных бинов в Ruby без проблем O ^ 2?

У меня есть MongoDB с около 1 миллиона документов. Во всех этих документах есть строка, представляющая 256-битный набор значений 1 и 0, например:

0110101010101010110101010101

В идеале я хотел бы запросить близкие двоичные совпадения. Это означает, что если два документа имеют следующие номера. Да, это расстояние Хэмминга.

В настоящее время это не поддерживается в Монго. Итак, я вынужден сделать это на уровне приложений.

Итак, учитывая это, я пытаюсь найти способ избежать необходимости делать отдельные сравнения расстояний Хэмминга между документами. что делает время сделать это в принципе невозможным.

У меня много ОЗУ. И в ruby, кажется, есть замечательная жемчужина (алгоритмы), которая может создать множество деревьев, ни одно из которых, как мне кажется, не работает (пока), которое уменьшило бы количество запросов, которые мне нужно было бы сделать.

В идеале я хотел бы сделать 1 миллион запросов, найти почти повторяющиеся строки и иметь возможность обновлять их, чтобы отразить это.

Любые мысли будут оценены.

Ответы на вопрос(4)

Ваш ответ на вопрос