2008-09-10 17 views
105

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

  • fácil de instalar/configurar
  • tiene un Django- o al menos Python de usar API
  • pueden realizar búsquedas complejas razonablemente

Aquí hay algunas aplicaciones que he oído hablar, por favor, sugiera a los demás si conoce alguna:

También me gustaría evitar el uso de un motor de búsqueda de terceros (como Google Site Search), debido a que algunos de los datos me gustaría índice es para los miembros del sitio y no debe ser pública .

+0

https://www.djangopackages.com/grids/g/search/ –

+0

Normalmente, cosas como "lo mejor" son bastante subjetivas, pero django realmente tiene una "mejor" aplicación de búsqueda como muestra la respuesta aceptada. –

+0

A menos que malinterprete totalmente django, esto sigue siendo una solicitud de biblioteca y, por lo tanto, fuera del tema. –

Respuesta

99

Salida Haystack Search - un nuevo modelo de capas de búsqueda basada en la abstracción que actualmente soporta Xapian, Solr y Whoosh. Parece que está bien soportado y documentado.

+3

Haystack está en desarrollo activo y el autor siempre está disponible a través de la lista de correo electrónico. – Tom

+2

del proyecto djangosearch: "Este proyecto ya no se encuentra en desarrollo activo. Si buscas una aplicación de búsqueda de texto completo de django que funcione con varios motores de búsqueda, revisa el pajar. Si estás buscando algo específico para Solr, podría querer probar Solango. " –

+0

Haystack ha sido mal, si es que lo ha hecho, respaldado por bastante tiempo. Te recomiendo que lo evites en este punto. Tal vez lo arreglen en el futuro, pero ahora está en un mal lugar. –

19

Justin, probaría djangosearch primero: Jacob Kaplan-Moss (desarrollador principal de Django) está trabajando en ello.

peligros potenciales:

  • La página principal advierte la API podría no ser del todo estable

beneficios potenciales:

  • “El objetivo a largo plazo es para que esto se convierta django.contrib.search . "
+43

La página ahora dice "Este proyecto ya no se encuentra en desarrollo activo. Si está buscando una aplicación de búsqueda de texto completo de django que funcione con varios motores de búsqueda, consulte Haystack". –

6

Gracias Garth. ¡Había visto que djangosearch quería ser la búsqueda oficial de Django, pero dudaba en usarlo porque no pude encontrar ninguna documentación! Por suerte, hay una README in subversion que yo no había visto antes, y hace que la API se ven muy cool:

# 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") 
1

Si tiene gran cantidad de datos para ser indexados o que espera un alto tráfico, me gustaría sugerir el uso de un motor de búsqueda externo, como Solr. De esta forma, mantendrá el enfoque de compartido compartido y podrá escalar los componentes de su sitio de forma independiente.

17

Estoy buscando lo mismo, al igual que muchas otras personas. Esperemos que django.contrib.search se agregarán pronto.

Mientras tanto, esto es lo que encontré:

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

8

Recomendaría Sphinx para la búsqueda y agregación de texto completo, y django-sphinx es lo suficientemente bueno para el uso en producción. Descubrimos que Sphinx era la forma más rápida y menos costosa de indexar y buscar nuestros documentos y que django-sphinx era una buena envoltura sobre el cliente de sphinx.

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

0

Gracias Joe,

decidimos ir con tsearch2 y un adaptador de postgres personalizados. Tsearch2 no necesita un proceso adicional para ejecutarse, que fue conveniente ya que estamos en un alojamiento webFaction con memoria limitada ... Todavía no está completamente hecho, pero parece ser una buena solución ...

2

Parece que todo el mundo aquí se perdió django-xappy

Después de una rápida evaluación de todos los complementos de búsqueda existentes para Django, encontré este como el más flexible y fácil de usar. Es difícil en los bordes en pocos lugares, pero sigue siendo la mejor manera de utilizar la potencia del motor de búsqueda Xapian dentro de los proyectos de Django.

0

Encontré Djoosh que depende del motor de búsqueda externo pure-python Whoosh para funcionar bien con mi cerebro 'Python'.

2

Es posible que desee ver en Django Solr search (también conocido como "Solango") que viene con algún tipo de documentación agradable para empezar ...

3

Es posible que desee considerar dejar Yahoo hacer todo el trabajo duro con su Construir su propio Servicio de búsqueda (BOSS). Aquí hay una gran entrada de blog que le guía a través del proceso: http://www.peterkrantz.com/2008/yahoo-search-in-django/

+0

Tengo un paquete de Django que lo hace aún más fácil: https://bitbucket.org/jaap3/django-bosssearch/ – jaap3

8

La página de códigos de google para djangosearch indica que ya no se encuentra en desarrollo activo y sugiere haystack o solango.

+2

Solango dice que ya no está en desarrollo y recomienda el uso de Haystack. – Rory

1

Creo que voy a tener que dar un grito a Djapian.

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

Todavía es un proyecto de software joven, pero creo que la comunidad de django debería arrojar su peso detrás de este.

5

Sólo necesitaba una solución muy rápida que era sin complicaciones para una aplicación interna.

Encontré el artículo Adding search to Django in a snap, ¡y eso funcionó espléndido para mí!

Obviamente carece de la velocidad, la escalabilidad y las características de los 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.

+0

Gracias, ese artículo es realmente útil. –

0

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

Yahoo BOSS es un servicio pago, pero le ahorra la configuración y el mantenimiento de otro software de búsqueda en su servidor.

Cuestiones relacionadas