Question

Je cherche à mettre en œuvre ( libre comme dans la bière ) la recherche plein texte sur une petite application sur Heroku (nombre minimal d'utilisateurs, des données limitées). Cependant, je me bats pour trouver un meilleur modèle pour le faire, une option est d'utiliser la limite de 10 Mo de Xeround, alors qu'elle dure (nous dépassons ce dans un avenir proche), le second est de rouler en quelque sorte ma propre recherche en texte intégral sur MongoDB ou CouchDB.

Les documents dans cette demande sont e-mails archivés que je souhaite faire une recherche à partir d'une liste de diffusion, il y a environ 10k ces e-mails, le texte brut, à peu près 700bytes par.

Je préférerais les capacités de recherche floue, donc la pression pour whoosh.

Parmi mes besoins (je l'ai mentionné plus tôt, est pour qu'il soit libre !)

Je n'ai pas trouvé de motifs pour l'utilisation whoosh avec MongoDB dans un python, l'application de flacon.

Quelqu'un peut-il fournir plus d'informations sur la façon de gérer la recherche en texte intégral dans un petit Heroku, l'application python?

Était-ce utile?

La solution

Je ne l'ai pas essayé, mais http://tenderlove.github.com/texticle/ semble impliquer que vous pouvez utiliser la recherche native pgsql fulltext si vous pouvez tenir dans les limites de l'espace. Le problème avec whoosh est que vous allez rencontrer des problèmes avec l'espace disque et sa persistance dans les règles Heroku.

L'autre chose à faire est de travailler avec les add ons comme suggéré par les dev docs: http://devcenter.heroku.com/articles/full-text-search

En ce qui concerne les modèles, vous avez essentiellement à faire la recherche et texte intégral récupérer les données / ids de dossiers et interroger votre magasin de données (mongo) pour l'ensemble des données en fonction des résultats en texte intégral. Il est un processus manuel, mais rien qui est trop étrange. Si la recherche n'a pas besoin de registres complets, vous pouvez généralement vous en sortir avec les données importantes stashing les informations texte intégral, mais va augmenter la taille de votre indexation texte intégral.

Autres conseils

pysolr permet de résoudre votre problème.

Avez-vous envisagé d'utiliser Apache Solr? Je pense qu'il est la meilleure solution pour un moteur de recherche en texte libre, il est libre et open source.

Pour utiliser SolR de python Je vous recommande la bibliothèque MySolr . Est assez rapide et plus facile à utiliser que pysolr (vous pouvez voir quelques stats ici )

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top