Pregunta

Estoy construyendo un proyecto Django que necesita funcionalidad de búsqueda, y hasta que haya una django.contrib.search, tengo que elegir una aplicación de búsqueda.¿Así que cuál es el mejor?Por "mejor" quiero decir...

  • fácil de instalar/configurar
  • tiene una API compatible con Django o al menos Python
  • puede realizar búsquedas razonablemente complejas

Aquí hay algunas aplicaciones de las que he oído hablar; sugiera otras si conoce alguna:

También me gustaría evitar el uso de un motor de búsqueda de terceros (como Google SiteSearch), porque algunos de los datos que me gustaría indexar son sólo para miembros del sitio y no deberían ser públicos.

¿Fue útil?

Solución

Verificar Búsqueda de pajar - una nueva capa de abstracción de búsqueda basada en modelo que actualmente admite Xapian, solr y Whoosh.Parece que está bien respaldado y documentado.

Otros consejos

Justin, lo intentaría djangobúsqueda primero:Jacob Kaplan-Moss (desarrollador líder de Django) está trabajando en ello.

Peligros potenciales:

  • La página de inicio advierte que la API podría no ser completamente estable

Beneficios potenciales:

  • “El objetivo a largo plazo es que esto se convierta en django.contrib.search.”

Estoy buscando lo mismo, como mucha otra gente.Esperemos que django.contrib.búsqueda se agregará pronto.

Mientras tanto, esto es lo que encontré:

Para mí, la mayoría parece bastante complicada y, francamente, un poco desalentadora de implementar.Me interesaría saber qué piensas de estos.

Recomendaría Sphinx para búsqueda y agregación de texto completo, y django-sphinx es lo suficientemente bueno para uso en producción.Descubrimos que Sphinx era la forma más rápida y que requería menos recursos de indexar y buscar en nuestros documentos y que django-sphinx era un buen envoltorio además del cliente sphinx.

El grupo por agregación es particularmente útil si, por ejemplo, desea mostrar cuántos documentos con una determinada etiqueta o por un determinado autor (o ambos) coinciden con una búsqueda.Las actualizaciones de atributos en la memoria también fueron convenientes, especialmente para eliminar artículos eliminados inmediatamente.

La página de códigos de Google para djangobúsqueda indica que ya no se encuentra en desarrollo activo y sugiere alpaca o solango.

Gracias Garth.Había visto que djangosearch quería convertirse en la búsqueda oficial de Django, ¡pero dudaba en usarlo porque no podía encontrar ninguna documentación!Por suerte, hay un README en subversión que no había visto antes y hace que la API se vea genial:

# set up the model
class Event(models.Model):
    title = models.CharField(max_length=255)
    date = models.DateField()
    is_outdoors = models.BooleanField()

    index = djangosearch.ModelIndex(text=['title'], 
                                    additional=['date', 'is_outdoors'])

# run a search
results = Event.index.search("django conference")

solo necesitaba un muy rápido solución que no fue complicada para una aplicación interna.

encontré el artículo Agregar búsqueda a Django en un instante, ¡Y eso funcionó espléndido para mí!

Obviamente, carece de la velocidad, escalabilidad y características de proyectos reales como Haystack, pero este es más fácil de configurar y realmente no necesito nada más que la palabra clave AND-search.

Quizás quieras considerar dejar que Yahoo haga todo el trabajo duro con su servicio de búsqueda Build your own Search (BOSS).Aquí hay una excelente publicación de blog que lo guía a través del proceso:http://www.peterkrantz.com/2008/yahoo-search-in-django/

Parece que todos aquí se perdieron django-xappy

Después de una evaluación rápida de todos los complementos de búsqueda existentes para Django, encontré que este es el más flexible y fácil de usar.Es áspero en algunos lugares, pero sigue siendo la mejor manera de utilizar el poder de Xapian Motor de búsqueda dentro de proyectos Django.

Quizás quieras mirar Búsqueda de Django Solr (también conocido como "Solango") que viene con buena documentación para comenzar...

Si tiene una gran cantidad de datos para indexar o espera mucho tráfico, le sugiero que utilice algún motor de búsqueda externo, como solr.De esta manera mantendrás nada compartido enfoque y sea capaz de escalar los componentes de su sitio de forma independiente.

Creo que voy a tener que felicitar a Djapian.

Es sólido como una roca... simplemente baje una distribución fuente y eche un vistazo al interior.Código de primer nivel, aunque no hay muchos comentarios.

Todavía es un proyecto de software joven, pero creo que la comunidad de Django debería apoyarlo.

Gracias Joe,

Decidimos optar por Tsearch2 y un adaptador Postgres personalizado.Tsearch2 no necesita un proceso adicional para ejecutarse, lo cual fue conveniente ya que estamos en un alojamiento WebFaction con memoria limitada...Aún no está completamente terminado, pero parece ser una buena solución...

encontré Djoosh que se basa en el motor de búsqueda externo puro de Python Whoosh para que funcione bien con mi cerebro 'Python'.

Si está dispuesto a utilizar un motor de búsqueda de terceros, puedo recomendarlo. Yahoo JEFE y django-bosssearch.

Yahoo BOSS es un servicio pago, pero le ahorra configurar y mantener otro software de búsqueda en su servidor.

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