Ich baue ein Django-Projekt, das Suchfunktionen benötigt, und bis es eines gibt django.contrib.search
, muss ich eine Such-App auswählen. Also, welches ist das Beste? Mit "am besten" meine ich ...
- einfach zu installieren / einzurichten
- hat 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.
python
django
search
search-engine
Justin Voss
quelle
quelle
Antworten:
Schauen Sie sich Haystack Search an - eine neue modellbasierte Suchabstraktionsschicht , die derzeit Xapian , Solr und Whoosh unterstützt . Sieht so aus, als ob es gut unterstützt und dokumentiert wird.
quelle
Justin, ich würde zuerst Djangosearch ausprobieren : Jacob Kaplan-Moss (Djangos Hauptentwickler) arbeitet daran.
Mögliche Gefahren:
Mögliche Vorteile:
django.contrib.search
."quelle
Ich suche das Gleiche wie viele andere Menschen. Hoffen wir, dass django.contrib.search bald hinzugefügt wird.
In der Zwischenzeit habe ich Folgendes gefunden:
Für mich sehen die meisten ziemlich kompliziert und ehrlich gesagt ein wenig entmutigend aus. Es würde mich interessieren, was Sie davon halten.
quelle
Die Google-Codepage für Djangosearch zeigt an, dass sie sich nicht mehr in der aktiven Entwicklung befindet, und schlägt Heuhaufen oder Solango vor .
quelle
Ich würde Sphinx für die Volltextsuche und -aggregation empfehlen, und Django-Sphinx ist gut genug für die Produktion. Wir haben festgestellt, dass Sphinx der am wenigsten ressourcenintensive und schnellste Weg ist, unsere Dokumente zu indizieren und zu durchsuchen, und dass Django-Sphinx ein netter Wrapper über dem Sphinx-Client ist.
Die Gruppierung nach Aggregation ist besonders hilfreich, wenn Sie beispielsweise anzeigen möchten, wie viele Dokumente mit einem bestimmten Tag oder einem bestimmten Autor (oder beiden) mit einer Suche übereinstimmen. Im Speicher waren Attributaktualisierungen ebenfalls praktisch, insbesondere um gelöschte Artikel sofort zu entfernen.
quelle
Danke Garth. Ich hatte gesehen, dass Djangosearch die offizielle Django-Suche werden wollte, aber ich zögerte, sie zu verwenden, weil ich keine Dokumentation finden konnte! Zum Glück gibt es eine README-Datei in Subversion , die ich vorher noch nicht gesehen habe, und die API sieht dadurch sehr cool aus:
quelle
Ich brauchte nur eine sehr schnelle Lösung, die für eine interne App kein Problem war.
Ich habe den Artikel Hinzufügen einer Suche zu Django im Handumdrehen gefunden , und das hat bei mir hervorragend funktioniert!
Natürlich fehlen die Geschwindigkeit, Skalierbarkeit und Funktionen der realen Projekte wie Haystack, aber dieses ist einfacher einzurichten, und ich brauche eigentlich nichts anderes als die Suche nach Schlüsselwörtern UND.
quelle
Vielleicht möchten Sie Yahoo die ganze harte Arbeit mit seinem Build Your Own Search Service (BOSS) überlassen. Hier ist ein großartiger Blog-Beitrag, der Sie durch den Prozess führt: http://www.peterkrantz.com/2008/yahoo-search-in-django/
quelle
Es sieht so aus, als hätten alle hier Django-Xappy verpasst
Nach einer schnellen Bewertung aller vorhandenen Such-Addons für Django fand ich dieses als am flexibelsten und am einfachsten zu verwendenden. Es ist an wenigen Stellen rau an den Rändern, aber es ist immer noch die beste Möglichkeit, die Leistung der Xapian- Suchmaschine in Django-Projekten zu nutzen.
quelle
Vielleicht möchten Sie sich die Django Solr-Suche (auch bekannt als "Solango") ansehen, die eine nette Dokumentation enthält, um Ihnen den Einstieg zu erleichtern ...
quelle
Wenn Sie eine große Datenmenge indizieren müssen oder hohen Datenverkehr erwarten, würde ich die Verwendung einer externen Suchmaschine wie Solr empfehlen . Auf diese Weise behalten Sie den Shared-Nothing- Ansatz bei und können Ihre Site-Komponenten unabhängig skalieren.
quelle
Ich glaube, ich muss Djapian einen Gruß aussprechen.
Es ist absolut solide ... ziehen Sie einfach eine Quellenverteilung herunter und schauen Sie hinein. Erstklassiger Code, nicht sehr viele Kommentare.
Es ist noch ein junges Softwareprojekt, aber ich denke, die Django-Community sollte ihr Gewicht hinter dieses Projekt werfen.
quelle
Danke Joe,
Wir haben uns für Tsearch2 und einen benutzerdefinierten Postgres-Adapter entschieden. Tsearch2 benötigt keinen zusätzlichen Prozess zum Ausführen, was praktisch war, da wir uns auf einem WebFaction-Hosting mit begrenztem Speicher befinden ... Es ist noch nicht vollständig fertig, scheint aber eine gute Lösung zu sein ...
quelle
Ich habe Djoosh gefunden, das sich auf die externe Python-Suchmaschine Whoosh stützt , um gut mit meinem ' Python' -Gehirn zusammenzuarbeiten.
quelle
Wenn Sie bereit sind, eine Suchmaschine eines Drittanbieters zu verwenden, kann ich Yahoo BOSS und django-bosssearch empfehlen .
Yahoo BOSS ist ein kostenpflichtiger Dienst, der Ihnen jedoch das Einrichten und Verwalten anderer Suchsoftware auf Ihrem Server erspart.
quelle