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

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

0110101010101010110101010101

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

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

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

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

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

Мы будем признательны за любые мысли.

9
задан Jason Sundram 27 January 2012 в 07:09
поделиться