Pregunta

Estoy buscando implementar (gratis como en la cerveza) Búsqueda de texto completo en una pequeña aplicación en Heroku (número mínimo de usuarios, conjunto de datos limitado). Sin embargo, estoy luchando por encontrar un mejor patrón para hacerlo, una opción es usar el límite de 10 MB de Xeround, mientras dure (podemos superar esto en el futuro cercano), la segunda es rodar mi propia búsqueda de texto completo en MongoDB o CouchDB.

Los documentos en esta aplicación son correos electrónicos archivados que deseo hacer de buscar desde una lista de correo, hay aproximadamente 10k de estos correos electrónicos, texto sin formato, aproximadamente 700 bíbles por.

Preferiría las capacidades de búsqueda difusa, por lo tanto, el impulso para Whoosh.

Entre mis requisitos (debería haber mencionado anteriormente, es que sea libre!)

No he encontrado ningún patrón para usar Whoosh con MongoDB en una aplicación Python, Flask.

¿Alguien puede proporcionar más información sobre cómo manejar la búsqueda de texto completo en una pequeña aplicación Heroku, Python?

¿Fue útil?

Solución

Así que no lo he probado, pero http://tenderlove.github.com/texticle/ Parece implicar que puede usar la búsqueda nativa de texto completo PGSQL si puede caber dentro de los límites de espacio. El problema con Whoosh es que te encontrarás con problemas con el espacio en el disco y su persistencia dentro de las reglas de Heroku.

La otra cosa que debe hacer es trabajar con los complementos como se sugiere a través de los documentos de Dev:http://devcenter.heroku.com/articles/full-text-search

En cuanto a los patrones, básicamente tiene que hacer la búsqueda de Text Full y recuperar datos/ID de registros y luego consultar su almacén de datos (Mongo) para obtener el conjunto de datos completo en función de los resultados de texto completo. Es un proceso manual, pero nada que sea demasiado extraño. Si la búsqueda no necesita registros completos, generalmente puede salirse con la suya con los datos importantes con la información de texto completo, pero eso aumentará el tamaño de su indexación de texto completo.

Otros consejos

pysolr resuelve su problema.

¿Ha considerado usar Apache Solr? Creo que es la mejor solución para un motor de búsqueda de texto libre, es gratuito y de código abierto.

Para usar Solr de Python te recomiendo el Mysolr biblioteca. Es bastante más rápido y más fácil de usar que Pysolr (puedes ver algunas estadísticas aquí)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top