Me gustaría implementar la búsqueda de texto completo en mi aplicación fuera de línea (Android) para buscar en la lista de notas generadas por el usuario.Búsqueda de texto completo como Google
me gustaría que se comporte igual que Google (ya que la mayoría de la gente ya se utilizan para realizar consultas a Google)
Mis requisitos iniciales son:
- rápido: como Google o tan rápido como sea posible, tener 100000 documentos con 200 palabras cada uno.
- buscando a dos palabras sólo debe devolver los documentos que contengan ambas palabras (no sólo una palabra) (a menos que se utiliza el operador OR)
- Caso insensible (aka: normalización): Si tengo la palabra 'Hola' y yo buscar 'hola' debe coincidir.
- Insensible a las marcas diacríticas: si tengo la palabra 'así', la búsqueda de 'asi' debe coincidir. En español, muchas personas, de forma incorrecta, no ponen marcas diacríticas o no las ponen correctamente.
- Eliminación de eliminación de palabras: para no tener un índice enorme, las palabras sin sentido como 'y', 'el' o 'para' no deberían indexarse en absoluto.
- Sustitución del diccionario (también conocido como palabras madre): las palabras similares deben estar indexadas como una sola. Por ejemplo, los casos de "hambriento" y "hambriento" deberían reemplazarse por "hambre".
- Búsqueda de frase: si tengo el texto '¡Hola, mundo!' una búsqueda de '' hello mundial '' no debería coincidir, pero una búsqueda de '' hello world '' debe coincidir.
- Buscar todos los campos (en documentos multifield) si no se especifica ningún campo (no solo un campo predeterminado)
- Autocompletar en los resultados de búsqueda mientras se escribe para realizar búsquedas populares. (al igual que Google Suggest)
¿Cómo puedo configurar un motor de búsqueda de texto para que se comporte tanto como sea posible con Google?
(soy su mayoría interesados en el Open Source, Java y, en particular, Lucene)
Si apunta a Lucene, que maneja muchos de estos productos de fábrica y es extensible, ¿puede especificar qué problema está teniendo? –
¿Qué estás buscando? – SLaks
Te das cuenta de que Google emplea http://en.wikipedia.org/wiki/Query_expansion y utiliza el historial de búsqueda de otras personas. Si todos los que buscan "ratones de la computadora" terminan haciendo clic en yahoo.com (inventando), con el tiempo yahoo.com se convertirá en el primer resultado de búsqueda para "ratones de la computadora". –