Frage

Ich baue ein Django-Projekt auf, das Suchfunktionen benötigt, und bis es eine gibt django.contrib.search, muss ich eine Such-App auswählen.Also, welches ist das Beste?Mit „am besten“ meine ich...

  • einfach zu installieren/einzustellen
  • verfügt über eine Django- oder zumindest Python-freundliche API
  • kann einigermaßen komplexe Suchvorgänge durchführen

Hier sind einige Apps, von denen ich gehört habe. Bitte schlagen Sie andere vor, wenn Sie welche kennen:

Ich möchte auch die Verwendung einer Suchmaschine eines Drittanbieters (wie Google SiteSearch) vermeiden, da einige der Daten, die ich indizieren möchte, nur für Website-Mitglieder bestimmt sind und nicht öffentlich sein sollten.

War es hilfreich?

Lösung

Schauen Sie sich Heuhaufen suchen - ein neues Modell basierte Suche Abstraktionsschicht, die derzeit unterstützt Xapian , Solr und Whoosh . Sieht aus wie es gut unterstützt wird und dokumentiert werden.

Andere Tipps

Justin, ich würde versuchen, djangosearch zuerst: Jacob Kaplan-Moss (Djangos Hauptentwickler ) arbeitet daran.

Mögliche Gefahren:

  • Die Startseite warnt die API nicht ganz stabil sein könnte

Mögliche Vorteile:

  • „Das langfristige Ziel ist es, diese django.contrib.search zu werden.“

ich für die gleiche Sache bin auf der Suche, wie viele andere Menschen sind. Wollen wir hoffen, dass django.contrib.search werden in Kürze hinzugefügt.

In der Zwischenzeit ist das, was ich gefunden:

Für mich, die meisten schauen ziemlich kompliziert und, ehrlich gesagt, ein wenig entmutigend zu implementieren. Ich würde mich interessieren zu erfahren, was Sie von ihnen denken.

würde ich Sphinx für die Volltextsuche und Aggregation und django-Sphinx empfehlen ist gut genug für den produktiven Einsatz. Wir fanden, dass Sphinx die am wenigsten ressourcenintensiv und schnellste Weg zum Index war und unsere Dokumente suchen und dass django-Sphinx war ein schöner Wrapper auf dem Sphinx-Client.

Die Gruppe, die durch die Aggregation ist besonders schön, wenn Sie zum Beispiel, wie viele Dokumente mit einem bestimmten Tag angezeigt werden soll oder von einem bestimmten Autor (oder beides) angepasst um eine Suche. Im Speicher-Attribute Updates zu bequem war, vor allem für sofort gelöscht Artikel zu entfernen.

Die Seite Google Code für djangosearch zeigt an, dass es nicht mehr aktiv weiterentwickelt und schlägt vor, Heuhaufen oder solango .

Danke Garth. Ich hatte das djangosearch gesehen die offizielle Django Suche werden wollte, aber ich war etwas beunruhigt, es zu benutzen, weil ich keine Unterlagen finden konnte! Glücklicherweise gibt es eine README in Subversion , dass ich noch nie zuvor gesehen hatte, und es macht die API sieht sehr 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")

Ich brauchte nur eine sehr schnell Lösung, die no-fuss für eine interne app war.

fand ich den Artikel Hinzufügen Suche in einem Snap Django, und das war für mich großartig!

Offensichtlich fehlt es die Geschwindigkeit, Skalierbarkeit und Merkmale der realen Projekte wie Heuhaufen, aber dies ist einfacher einzurichten, und ich brauche nicht wirklich etwas anderes als Schlüsselwort AND-Suche.

Sie können prüfen, Yahoo mit all der harten Arbeit tun lassen ihren Build your own Search Service (BOSS). Hier ist eine große Blog-Post, die Sie durch den Prozess: http://www.peterkrantz.com/2008/yahoo-search-in -django /

Es sieht aus wie jeder hier verpasst django-xappy

Nach einem schnellen Auswertung aller vorhandenen Such Addons für Django, fand ich diese als flexibelste und am einfachsten zu bedienen. Es ist rau an den Rändern in wenigen Orten, aber es ist immer noch die beste Art und Weise Macht der Xapian Suchmaschine zu verwenden.

Sie können unter Django Solr Suche aussehen soll (aka " Solango "), die mit einigen netten Dokumentation kommt zum Einstieg ...

Wenn Sie eine große Menge an Daten zu indizieren, oder Sie erwarten hohe Verkehrs, ich würde vorschlagen, dass einige externe Suchmaschine, wie Solr . Auf diese Weise werden Sie halten Shared-Nothing Ansatz und der Lage sein, Ihre Website-Komponenten unabhängig voneinander zu skalieren.

Ich glaube, ich werde einen Ruf heraus zu Djapian geben müssen.

Es ist rock-solid ... nur eine Quelle Verteilung nach unten ziehen und einen Blick hineinwerfen. Top Notch-Code, nicht sehr viele Kommentare tho ..

Es ist immer noch ein junges Software-Projekt, aber ich denke, die django Gemeinschaft ist es Gewicht hinter diesem einen Wurf soll.

Danke Joe,

Wir entschieden uns, mit tsearch2 und einem benutzerdefinierten Postgres Adapter zu gehen. Tsearch2 keinen zusätzlichen Prozess ausführen müssen, das war praktisch, da wir auf einem WebFaction sind mit begrenztem Speicher-Hosting ... Es ist noch nicht ganz fertig, aber es scheint eine gute Lösung zu sein ...

Ich fand Djoosh , die auf der pure-Python externe Suchmaschine beruht Whoosh arbeitet gut mit meinem 'Python' Gehirn.

Wenn Sie bereit sind, ein 3rd-Party-Suchmaschine zu verwenden, kann ich Yahoo BOSS empfehlen und django-bosssearch .

Yahoo BOSS ist ein kostenpflichtiger Dienst, aber es erspart Ihnen das Einrichten und anderen Such-Software beibehalten auf dem Server.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top