El problema en las URL de hashing no es el algoritmo de hashing (Murmur, MD5, SHA1, etc., todo estaría bien), sino la normalización de las URL.
Por ejemplo, todas las siguientes URL tienen el mismo significado, pero diferentes hashes:
- http://www.google.com
- http://www.google.com/
- www.google.com
- google.com
- google.com.
Antes de hash las URL, debe normalizarlas. Wikipedia tiene una buena referencia para este proceso: http://en.wikipedia.org/wiki/URL…. La mayoría de las bibliotecas de URL también tienen métodos que pueden ayudarte con esto.
- ¿Qué tecnologías y algoritmos se usan comúnmente para la resolución de entidades basadas en una intersección de algunos atributos?
- Cómo imprimir una cadena usando un puntero
- Cómo verificar el número dado es múltiplo de 3 sin usar el operador de módulo
- ¿Cómo manejan las personas el error de profundidad de recursión máxima excedida sin reescribir el código de forma iterativa? (en la programación dinámica de arriba hacia abajo)
- ¿Cómo funciona 'Un algoritmo neuronal de estilo artístico'?
En términos de su aplicación específica, asegúrese de que realmente necesita hash la URL (que no tiene suficiente espacio solo para indexar las cadenas). Si tiene relativamente pocas URL, podría usar un algoritmo de suma de verificación como Adler32 que es sustancialmente más eficiente en espacio y más rápido. Si le preocupa el espacio, también podría usar un hash relativamente débil para reducir sustancialmente su región de búsqueda antes de realizar una búsqueda estándar basada en la cadena de URL.