¿En qué va a buscar el autocompletado? ¿Es simplemente un intento de hacer coincidir las letras ingresadas con las palabras que están en su base de datos? ¿O hay alguna otra “inteligencia” para tratar de colocar el autocompletado en el contexto de lo que sucedió antes?
Si se trata simplemente de una búsqueda de palabras, entonces la búsqueda más efectiva “casi coincidente” es la que utilizan la mayoría de los correctores ortográficos: algo así como un árbol de búsqueda Trie / Ternary / árbol BK. Mire cosas como Levenstein Distance para verificar palabras más cercanas que le permitan sugerir una lista de palabras deletreadas de manera similar.
Si hay un contexto involucrado, entonces necesitaría tener algún tipo de filtro por encima de los árboles utilizados, es decir, eliminar ciertas posibilidades que no coinciden con el contexto.
- ¿Qué deben leer todos los libros como Embedded / System / Kernel Engineer y por qué? ¿Incluyendo estructura de datos y algoritmos?
- ¿Cuál es la diferencia principal entre algoritmo y pseudocódigo?
- ¿Podemos resolver este problema SPOJ.com - Problema PT07Z de esta manera?
- ¿Por qué los programadores experimentados dicen que la programación del mundo real es completamente diferente a la programación competitiva?
- ¿Está bien mi implementación de Búsqueda ternaria?
Para múltiples idiomas, probablemente sea más eficiente simplemente tener un interruptor para establecer qué idioma es el actual. Y luego, dependiendo del valor de ese interruptor, use el vocabulario del lenguaje relevante mapeado en la estructura de árbol. Si simplemente desea que las palabras de todos los idiomas estén disponibles todo el tiempo, solo agréguelas todas juntas y deje que la Distancia de Levenstein resuelva la coincidencia más cercana a lo que sea que esté escribiendo el cliente, aunque desaconsejaría esto, va a confundir a las personas cuando Ver palabras que no entienden. Más bien, mantenga diferentes idiomas separados y no bombardee al usuario con palabras no reconocidas.