2010-11-28 34 views
5

Estoy buscando un motor de búsqueda de texto completo de Python.Motor de búsqueda de texto completo para Python

Eché un vistazo a PyLucense, pero creo que usar una biblioteca basada en Java en un proyecto de Python no es bueno. Según entiendo, Sphinx no tiene una API de Python.

¿Alguna idea?

Respuesta

6

¿Has mirado Whoosh? Es puro Python.

+2

Sólo pensé en mencionar esto ... Hace poco intenté whoosh por 1.5 millones de filas de datos de entrada para indexar ... mientras que whoosh fue muy fácil de instalar y ejecutar ... funcionó lo suficientemente rápido para un índice más pequeño para mí y fue lento para mi tamaño de índice: 1000 resultados de búsqueda en 15 segundos ... puede ser bueno para un tamaño de índice más pequeño – Abhi

4

"Sphinx no tiene una API Python"

no es cierto. Descarga el lanzamiento y mira sphinx/api/sphinxapi.py

Lo uso yo mismo y estoy muy contento con él. La documentación es solo para PHP, pero la API de Python usa exactamente los mismos nombres para todas las funciones.

2

Recomendaré whoosh. Puede instalarlo fácilmente, por ejemplo, easy_install Whoosh Tiene una API bien también

2

Apache Solr es Lucene-basado y ofrece una interfaz REST/HTTP para sus funciones de búsqueda, por lo que no tiene problemas de bloqueo de plataforma o de idioma. IMO es, de lejos, el mejor servidor de búsqueda que existe, con más funciones de las que puede desear y una comunidad activa que lo respalde.

+0

Soy un chico de Python e incluso mantengo un contenedor Python SQLite (APSW). Para algunas cosas de trabajo, también uso Solr. La configuración es un PITA, pero los resultados de búsqueda son fantásticos. Puede recuperarlos como JSON, lo que hace la vida más fácil. Tienes que crear el contenido a través de XML que es molesto. El FTS3 de SQLite también es bueno pero no tan flexible. Por ejemplo, stemming y metaphone son triviales con SOLR pero muy difíciles con FTS3. –

1

¿Has probado las características de sqlite FTS? Usaste la etiqueta sqlite pero no veo mención de sqlite en tu pregunta.

+0

No, no lo probé. SQLAlchemy no es compatible con la búsqueda SQLite, y no quiero usar la sintaxis SQL de la trenza. – uhbif19

2

Particularmente para la búsqueda de texto completo, Solr es una excelente opción. Te resultará difícil encontrar una opción más abierta y ampliamente utilizada. Usamos Solr/Lucene en mi compañía con una aplicación web PHP que es el cliente y la API HTTP/REST para permitirle consultar el índice. Tiene tanta funcionalidad como un cliente PHP nativo y mucha más flexibilidad de la caja. Puede realizar cualquier consulta/filtro que elija con la API REST. Pero, además de todo eso, obtienes un sistema de búsqueda extremadamente eficiente y ampliamente utilizado con replicación incorporada que se mejora constantemente. Recomiendo fuertemente Solr 1.4.x como su punto de partida.

Cuestiones relacionadas