¿Cómo encontrar los pares más cercanos (distancia de Hamming) de una cadena de contenedores binarios en Ruby sin problemas de O ^ 2?

Tengo un MongoDB con aproximadamente 1 millón de documentos. Todos estos documentos tienen una cadena que representa un bin de 256 bits de 1s y 0s, como:

0110101010101010110101010101

Idealmente, me gustaría consultar coincidencias binarias cercanas. Esto significa, si los dos documentos tienen los siguientes números. Sí, esta es Hamming Distance.

Esto NO es compatible actualmente con Mongo. Por lo tanto, me veo obligado a hacerlo en la capa de aplicación.

Entonces, dado esto, estoy tratando de encontrar una manera de evitar tener que hacer comparaciones individuales de distancia de Hamming entre los documentos. eso hace que el tiempo para hacer esto sea básicamente imposible.

Tengo MUCHA RAM. Y, en ruby, parece haber una gran gema (algoritmos) que puede crear una cantidad de árboles, ninguno de los cuales parece que pueda hacer trabajo (todavía) que reduciría la cantidad de consultas que necesito hacer.

dealmente, me gustaría hacer 1 millón de consultas, encontrar las cadenas casi duplicadas y poder actualizarlas para reflejar eso.

Los pensamientos de cualquiera serían apreciados.

Respuestas a la pregunta(8)

Su respuesta a la pregunta