mongodb - index - mongoose text search
¿Búsqueda de texto completo en MongoDB GridFS? (2)
Digamos, si quiero almacenar archivos PDF o ePub usando GridFS de MongoDB, ¿es posible realizar búsquedas de texto completo en los archivos de datos?
Actualmente no puede realizar búsquedas reales de texto completo en mongo: http://www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo
Siéntase libre de votar aquí: https://jira.mongodb.org/browse/SERVER-380
Mongo es más un almacén de datos escalable de propósito general, y hasta el momento no tiene ningún soporte de búsqueda de texto completo. Dependiendo de su caso de uso, podría usar los índices de árbol b estándar con una matriz de todas las palabras en el texto, pero no hará coincidencias difusas o difusas, etc.
Sin embargo, recomendaría combinar mongodb con una aplicación basada en lucene (la búsqueda elástica es popular). Puede almacenar todos sus datos en mongodb (datos binarios, metadatos, etc.) y luego indexar el texto sin formato de sus documentos en lucene. O bien, si su caso de uso es pura búsqueda de texto completo, puede considerar el uso de búsqueda elástica en lugar de mongodb.
Actualización (abril de 2013): ¡MongoDB 2.4 ahora es compatible con un índice básico de texto completo! Algunos recursos útiles a continuación.
http://docs.mongodb.org/manual/applications/text-search/
http://docs.mongodb.org/manual/reference/command/text/#dbcmd.text
http://blog.mongohq.com/blog/2013/01/22/first-week-with-mongodb-2-dot-4-development-release/
No estoy usando las API de MongoDB, no que yo sepa. GridFS parece estar diseñado para ser más como un sistema de archivos simplificado con API que proporciona una semántica de clave-valor directa. En la página de ideas de su proyecto , enumeran dos cosas que podrían ayudarlo si existieran en un estado listo para la producción:
- GridFS FUSE que le permitiría montar GridFS como un sistema de archivos local y luego indexarlo como si fuera un índice de cosas en su disco
- Integración de búsqueda de texto completo en tiempo real con herramientas como Lucene y Solr . Hay algunos proyectos en github y bitbucket que es posible que desee verificar.
También mira ElasticSearch . He visto cierta integración con Mongo, pero no estoy seguro de cuánto se ha hecho para aprovechar GridFS (se menciona el soporte para GridFS, pero no he trabajado con él para saberlo con certeza). ¿Tal vez serás tú quien lo construya y luego lo abra? debería ser una aventura divertida