una scraping pagina leer extraer español datos python mysql lucene full-text-search

scraping - leer pagina web python



Búsqueda de texto completo y Python (3)

¿Puede alguien ayudarme con alguna sugerencia para un motor de búsqueda de texto completo que admita Python?

En este momento tenemos una base de datos MySQL en su lugar y me gustaría agregar la capacidad de tener un motor de búsqueda de texto completo para indexar parte del texto en algunas de las tablas en esta base de datos. Esta información de texto sería utilizada por una aplicación web para buscar los registros correspondientes en la base de datos. Por ejemplo, indexe la información del nombre del cliente en nuestra tabla de clientes, búsqueda de texto completo que con la aplicación web para obtener el registro MySQL para el cliente.

Miré (brevemente) a Lucene, Swish-E y MongoDB, y algunos otros, pero no estoy seguro de cuál sería una buena opción para mí teniendo en cuenta un par de cosas:

  • No soy Java (aunque he estado programando durante mucho tiempo),
  • solo queremos buscar un conjunto relativamente pequeño de datos,
  • estamos buscando indexar texto en una base de datos MySQL
  • y quisiera que ese índice se actualice en tiempo semi-real.

¡Cualquier sugerencia, consejo o puntero sería muy apreciado!


Construir el pirluceno hace unos meses fue una de las experiencias más dolorosas que tuve. El proyecto no obtendrá ninguna tracción en mi humilde opinión si es tan difícil de construir.

Con otras personas que tienen el mismo deseo de cero, comenzamos https://code.google.com/a/apache-extras.org/p/pylucene-extra/ para recopilar los huellas de plucene y jcc precompilados en varios sistemas operativos, Combinaciones de Python y Java runtimes. Sin embargo, últimamente no está muy activo.

Whoosh podría ser una buena opción, o tal vez desee echarle un vistazo a Sphinx , ElasticSearch o HaystackSearch (CAVEAT: No trabajé en ninguno de estos).

O tal vez intente acceder a Solr a través de python (hay algunas API), que podría ser mucho más fácil que usar pylucene. Considere que lucene todavía necesitará una JVM para ejecutarse, por supuesto.

Como no tiene grandes necesidades de escalabilidad, me concentraría en el uso simple y el apoyo de la comunidad en lugar del rendimiento y la escala. Espero eso ayude.


Echa un vistazo a Whoosh . He oído que no se amplía terriblemente bien (tal vez eso está arreglado ahora) pero para colecciones pequeñas, podría ser útil.

Para una solución escalable, considere usar Lucene con PyLucene o Jython.


Solr es una excelente envoltura para Lucene, simplifica enormemente las cosas. No requiere retoques de Java para la mayoría de las cosas, solo necesita configurar algunos archivos XML. Se ejecuta como otro proceso, por lo que esto puede complicar su implementación.

He obtenido excelentes resultados con pysolr , pero realmente, podrías escribir tu propia biblioteca de comunicación de Python ya que Solr usa REST, por lo que es muy simple enviar y recuperar datos en xml o json.