Sto cercando di implementare (gratis come nella birra) ricerca a testo completo su una piccola applicazione suHeroku (numero minimo di utenti, set di dati limitato). Tuttavia, sto cercando di trovare il modello migliore per farlo, una possibilità è quella di usare il limite di 10mb di xeround, mentre dura (potremmo superarlo nel prossimo futuro), il secondo è quello di ottenere in qualche modo la mia ricerca di testo completo su MongoDB o CouchDB.
I documenti di questa applicazione sono e-mail archiviate che desidero rendere ricercabili da una mailing list, ci sono circa 10k tali e-mail, testo in chiaro, circa 700bytes per.
Preferirei le funzionalità di ricerca fuzzy, quindi la spinta per whoosh.
Tra i miei requisiti (avrei dovuto accennare prima, è perché lo sia gratuito!)
Non ho trovato alcun pattern per l'utilizzo di whoosh con MongoDB in un'applicazione python, flask.
Qualcuno può fornire maggiori informazioni su come gestire la ricerca full-text in una piccola applicazione di python e heroku?
risposte:
2 per risposta № 1Quindi non ho provato, ma http://tenderlove.github.com/texticle/ sembra implicare che puoi usare pgsql nativoricerca di testo completo se è possibile rientrare nei limiti di spazio. Il problema con whoosh è che ti imbatterai in problemi con lo spazio su disco e la sua persistenza all'interno delle regole di heroku.
L'altra cosa da fare è lavorare con i componenti aggiuntivi come suggerito tramite i documenti di sviluppo: http://devcenter.heroku.com/articles/full-text-search
Per quanto riguarda i pattern, in pratica devi fare ilricerca di testo completo e recupero di dati / id di record e quindi interrogare l'archivio dati (mongo) per l'intero set di dati in base ai risultati del testo completo. È un processo manuale, ma niente che sia troppo strano. Se la ricerca non ha bisogno di record completi, in genere è possibile evitare di archiviare i dati importanti con le informazioni complete, ma che "aumenteranno la dimensione dell'indicizzazione del testo completo.
0 per risposta № 2
pysolr risolve il tuo problema
0 per risposta № 3
Hai preso in considerazione l'utilizzo di Apache SolR? Penso che sia la migliore soluzione per un motore di ricerca a testo libero, è gratuito e open source.
Per usare SolR da Python ti consiglio di MySolr biblioteca. È abbastanza più veloce e più facile da usare rispetto a pysolr (puoi vedere alcune statistiche Qui)