autocomplete - remove - autocompletar algoritmos, documentos, estrategias, etc.
input elements should have autocomplete attributes (3)
Autocompletar generalmente se implementa utilizando uno de los siguientes:
- Árboles Al indexar el texto que se puede buscar en una estructura en árbol (árbol de prefijos, árbol de sufijos, dawg, etc.) uno puede ejecutar búsquedas muy rápidas a expensas del almacenamiento de la memoria. El recorrido del árbol se puede adaptar para una coincidencia aproximada.
- Partición del patrón . Al dividir el texto en tokens (ngrams), se pueden ejecutar búsquedas de ocurrencias de patrones usando un simple esquema de hash.
- Filtrando Encuentre un conjunto de posibles coincidencias y luego aplique un algoritmo secuencial para verificar cada candidato.
Un par de artículos sobre el tema:
- BoĊivoj Melichar. Coincidencia aproximada de cadenas por autómatas finitos;
- Gonzalo Navarro. Una visita guiada a la coincidencia de cadenas aproximadas;
- Leonid Boytsov. Métodos de indexación para la búsqueda aproximada del diccionario: análisis comparativo;
- Marios Hadjieleftheriou y Divesh Srivastava. Procesamiento de cadena aproximado;
- Surajit Chaudhuri y Raghav Kaushik. Extendiendo la Autocompletación para Tolerar Errores;
Eche un vistazo a completamente , una biblioteca de autocompletado de Java.
Me pregunto si alguien tiene buenos recursos para leer o codificar para experimentar con "autollenado"
Me gustaría saber cuál es la teoría detrás del autocompletado, dónde comenzar, cuáles son los errores comunes, etc.
Encontré fascinante la forma en que productos como Enso, Launchy, Google Chrome e incluso tcsh realizan su autocompletar, comencé mi auto por curiosidad y obtuve un código de muestra y llegué a la conclusión de que este debe ser un campo ampliamente explorado antes.
Agradecería si alguien comparte algún buen recurso técnico sobre cómo implementar esto.
Gracias por adelantado.
- http://humanized.com/weblog/2007/03/30/what_makes_a_good_autocomplete/ -
- http://social.msdn.microsoft.com/Forums/en-US/vblanguage/thread/2ccb37b9-c7e1-4113-86ac-ad3d33b4b4b1/ - en el mundo .Net
- Una desagradable patente sobre el enfoque de autocompletado (aún vale la pena leerla para la teoría ) http://www.patentstorm.us/patents/5845300/description.html
- http://ask.metafilter.com/91068/Fuzzy-text-completion-algorithm para una discusión de alto nivel sobre estrategias a tomar.
Echa un vistazo a este blog sobre la implementación de autocompletar usando GWT:
http://jroller.com/glongman/entry/gwt_autocompleter
Pero recomiendo que primero empieces con algo muy simple por tu cuenta para comprender cómo se lleva a cabo la implementación. Empezaría con un Trie, tal vez incluso almacenado por completo en el cliente, luego pasaría a optimizarlo con las consultas del servidor si crees que son necesarias.